我在项目中有n个cpp文件。'A'是将有主函数的源文件,'B'是另一个包含函数定义的源文件,它将被'一个'。visual studio源文件构建命令
A.cpp #include "stdafx.h" #include "b.h" int main() { add(5,4); return 0; }
了Bh
#include "stdafx.h" void add(int a ,int b);
B.cpp
#include "stdafx.h" void add(int a,int b) { cout<<(a+b); }
但建造顺序是一样a.cpp b.cpp后使添加函数应该由链接器解析。 我该如何解决构建顺序问题?
编辑1:我的构建文件日志: -
构建开始22-11-2014 15点57分11秒。 1>节点2(构建目标)上的项目“C:\ Users \ Admin \ Documents \ Visual Studio 2013 \ Projects \ ConsoleApplication2 \ ConsoleApplication2 \ ConsoleApplication2.vcxproj”。 1> Link: C:\ Program Files(x86)\ Microsoft Visual Studio 12.0 \ VC \ bin \ link.exe/ERRORREPORT:PROMPT/OUT:“C:\ Users \ Admin \ Documents \ Visual Studio 2013 \ Projects \ ConsoleApplication2 \ Release \ ConsoleApplication2.exe“/ INCREMENTAL:NO/NOLOGO/LIBPATH:D:\ Glut/LIBPATH:D:OpenCV opencv build x86 x86 opencv_highgui246.lib opencv_imgproc246.lib opencv_legacy246.lib opencv_ml246.lib opencv_objdetect246.lib opencv_video246.lib glut32.lib asmlibrary.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32。 lib uuid.lib odbc32.lib odbccp32.lib/MANIFEST/MANIFESTUAC:“level ='asInvoker'uiAccess ='false'”/ manifest:embed/DEBUG/PDB:“C:\ Users \ Admin \ Documents \ Visual Studio 2013 \ Projects \ ConsoleApplication2 \ Release \ ConsoleApplication2.pdb“/ SUBSYSTEM:CONSOLE/OPT:REF/OPT:ICF/LTCG/TLBID:1/D YNAMICBASE/NXCOMPAT/IMPLIB:“C:\ Users \ Admin \ Documents \ Visual Studio 2013 \ Projects \ ConsoleApplication2 \ Release \ ConsoleApplication2.lib”/ MACHINE:X86/SAFESEH Release \ CLM.obj Release \ FCheck.obj
Release\FDet.obj
Release\IO.obj
Release\Patch.obj
Release\PAW.obj
Release\PDM.obj
Release\Tracker.obj
Release\updated_facetracker_v2.obj
Release\glm.obj
Release\glmimg.obj
Release\glmimg_devil.obj
Release\glmimg_jpg.obj
Release\glmimg_png.obj
Release\glmimg_sdl.obj
Release\glmimg_sim.obj
Release\glm_util.obj
Release\stdafx.obj
1>updated_facetracker_v2.obj : error LNK2001: unresolved external symbol "void __cdecl glmDraw(struct _GLMmodel *,unsigned int)" ([email protected]@[email protected]@[email protected])
1>updated_facetracker_v2.obj : error LNK2001: unresolved external symbol "struct _GLMmodel * __cdecl glmReadOBJ(char *)" ([email protected]@[email protected]@[email protected])
1>C:\Users\Admin\Documents\Visual Studio 2013\Projects\ConsoleApplication2\Release\ConsoleApplication2.exe : fatal error LNK1120: 2 unresolved externals
1>Done Building Project "C:\Users\Admin\Documents\Visual Studio 2013\Projects\ConsoleApplication2\ConsoleApplication2\ConsoleApplication2.vcxproj" (Build target(s)) -- FAILED.
构建失败。
已用时间00:00:00.81
这是当初项目建设文件在这里glm.c是updated_facetracker_v2.cpp文件和glm.c编译后建成没有任何错误“
您应该查看错误窗口以轻松查看所有错误并确定发生的第一个错误。 – sjdowling 2014-11-22 10:35:21
该错误与您给出的示例无关,但应该有更高的编译错误。 – tillaert 2014-11-22 10:35:39
上面的例子很容易理解 – 2014-11-22 10:36:23