如果出现比较匪夷所思的 undefined reference 错误,一般是这两种情况:
1. c和c++混合连接,对gcc编译的.c文件里面的函数未加上extern "C"
gcc以C命名对待.c, c++命名对待.cpp; 而g++则统一以c++命名对待
2. .o文件,.a(库文件相当于.o文件包),顺序问题, .a内部的.o也是有顺序要求的:引用者在前,定义者在后(即先引用后定义)
本文详细介绍了在C和C++混合编程时遇到的undefined reference错误的原因及解决方法,主要涉及两种常见情况:1. 对于gcc编译的.c文件中的函数未加上extern C;2. .o文件和.a库文件的顺序问题,引用者需在定义者之前。通过正确使用extern C和调整文件顺序,可以有效避免该错误。
如果出现比较匪夷所思的 undefined reference 错误,一般是这两种情况:
1. c和c++混合连接,对gcc编译的.c文件里面的函数未加上extern "C"
gcc以C命名对待.c, c++命名对待.cpp; 而g++则统一以c++命名对待
2. .o文件,.a(库文件相当于.o文件包),顺序问题, .a内部的.o也是有顺序要求的:引用者在前,定义者在后(即先引用后定义)

被折叠的 条评论
为什么被折叠?