error LNK2019: 无法解析的外部符号……

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/yz2zcx/article/details/100608173

在VS中开发程序的时候遇到一个问题,应该算是比较常见,所以记录下。

在编译程序的时候遇到一个错误,大致提示如下:

“error LNK2019: 无法解析的外部符号……”

遇到这个错误一般是因为存在以下三种情况:

1、引用别人编译好的库,这个时候一般是引入头文件后,没有将lib文件导进工程中,所以需要在VS的工程属性设置中将lib文件加到工程里;

2、自己写的.h/.cpp文件,但是没有将.h/.cpp加到工程中,而是在某些其他.h/.cpp文件中包含了头文件,这个时候就需要右键工程,添加现有项,将包含的.h/.cpp都加到工程中;

3、第三种是自己写的.h/.c文件,也加到工程里了,但是还是报错了,注意这里是.h/.c,而我们的工程里是cpp来调用,这个时候是C++和C混编了,虽然编译器是按照C的规则来编译.h/.c的文件,但是链接器还是按照C++的规则去查找函数名,就会出现找不到的情况,所以需要将在头文件函数声明的时候添加C语言的提示:

#ifdef __cplusplus
extern "C" 
{
    void myFunction(void);  //这里写函数声明
}
#endif

楚人有涉江者,其剑自舟中坠于水。遽契其舟,曰:“是吾剑之所从坠。”舟止,从其所契者入水求之。舟已行矣,而剑不行,求剑若此,不亦惑乎!

猜你喜欢

转载自blog.csdn.net/yz2zcx/article/details/100608173