[c++]引入了头文件和动态库,为什么找不到函数实现
程序员文章站
2022-04-20 08:37:06
问题现象undefined reference to xxx一般copy了别人的代码,直接拿来编译,可能会遇到这种问题。网上找了很多答案都没有对应的解答。头文件已经引用了,而且对应的库文件或者源码文件都在工程里,但是就是提示找不到。IDE可以提示跳转,说明是可以找到函数实现的,但是跳转直接跳到了.c文件里。这才让我恍然明白,这个文件是c写的,而我的工程是c++的。问题解决因为c和c++对函数名的编码是不一样的,c直接就是“明文”,而c++会有一定的格式。所以对于c文件的header,c+...
问题现象
undefined reference to xxx
一般copy了别人的代码,直接拿来编译,可能会遇到这种问题。网上找了很多答案都没有对应的解答。
头文件已经引用了,而且对应的库文件或者源码文件都在工程里,但是就是提示找不到。
IDE可以提示跳转,说明是可以找到函数实现的,但是跳转直接跳到了.c文件里。
这才让我恍然明白,这个文件是c写的,而我的工程是c++的。
问题解决
因为c和c++对函数名的编码是不一样的,c直接就是“明文”,而c++会有一定的格式。所以对于c文件的header,c++程序找不到对应的实现。
需要加上如下处理
#ifdef __cplusplus
extern "C" {
#endif
xxxx
xxxx
#ifdef __cplusplus
}
#endif
本文地址:https://blog.csdn.net/mimiduck/article/details/108869310