Undefined reference to xxx

  1. 缺少函数定义的库文件(.so, .a)或者目标文件(.o)
  2. 多个目标文件,库文件链接的顺序:定义的文件应该放在后面
  3. c++和c的混合编程

第1,2点很常见了,对于第3点:
原因:由于c++与c编译之后生成的符号不同,如果库文件是使用c编译出来的,而c++在链接的时候就找不到对应的符号,因此会报“Undefined reference to xxx”的错误。可以通过 nm 命令查看库文件或者目标文件的符号表
解决:通过在引用c头文件的时候,添加extern “C”; 或者使用(或者重新编译)c++版本的库文件

猜你喜欢

转载自blog.csdn.net/iamanda/article/details/119380545