编译:
1、检查头文件有相应的函数和变量声明;
2、源文件语法问题。
链接:
只与目标文件相关,即*.o window下目标文件可打包为lib,而Linux下是打包为静态库(.a)或者动态库(*.so)。
vs工程下,如果某些*.cpp需要编译成*.obj,则必须在界面上添加到工程中的源文件夹中,这样才能生成目标文件.obj,不然在链接时会出现Lnk2019,无法解析外部符号的错误。
vs下如果obj对应的源文件更改了,有时会链接出错,Lnk2019错误,需要把之前的obj文件手动删掉,再编译链接就可以了。这也是为什么很多Linux下的makefille最后的clean会rm -f *.o