当前位置: 移动技术网 > IT编程>开发语言>C/C++ > [c++]引入了头文件和动态库,为什么找不到函数实现

[c++]引入了头文件和动态库,为什么找不到函数实现

2020年09月29日  | 移动技术网IT编程  | 我要评论
问题现象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

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网