c++/visual studio常见问题【1】

LNK2001错误

参考https://docs.microsoft.com/en-us/cpp/error-messages/tool-errors/linker-tools-error-lnk2001?view=vs-2017

无法解析的外部符号"符号"。说明程序中用到的某个符号,链接器无法在任何库或者obj对象文件中找到。

原因:

1)编码方面的原因

a) 变量名称不一致,比如一个文件里定义了var1,在另一个文件里却使用VAR1。

b) 在源代码中使用内联函数,此时该函数从文件外部无法访问。应该在头文件中定义内联函数。

c) 从c++程序中调用c函数,由于编译器对c/c++函数命名不同,所以出现错误。需要在c函数前加上exern "C"。

d) 

2) 编译链接方面的原因

a) 未添加相应的lib文件;

b) release和debug模式不匹配。比如,在release模式下调用debug模式编译的库。

变量和函数需要定义(defined),即需要被分配了相应的存储空间或者有函数实现的代码段。此外,c++链接器在命名中会在变量或函数名上加上类型信息等,因此如果声明和定义的类型信息不匹配,会出现错误。

比如,项目中文件有c,c++,会出现Lnk2001错误。或者把c改名cpp,或者

猜你喜欢

转载自blog.csdn.net/novanova2009/article/details/86353565