我在构建用C++编码的可执行文件时遇到了一个奇怪的问题,它使用的C++库本身依赖于C库.我使用gcc和使用g ++的所有其他源模块编译了构成C库的C模块.C和C++库都是静态库.
当我在C++源代码中包含来自C库的头文件时,我将其包装在extern"C"中:
extern "C"
{
#include <c-library-header.h>
}
Run Code Online (Sandbox Code Playgroud)
现在奇怪的是链接时得到"未定义的引用"错误,但这些错误取决于我列出库的顺序:
我本以为在g ++命令行中出现静态库的顺序是完全无关紧要的.有人有任何线索吗?