可能重复:
Linker order - GCC
GCC C++ Linker errors: Undefined reference to 'vtable for XXX', Undefined reference to 'ClassName::ClassName()'
我正在使用GCC来构建应用程序。主程序调用驻留在静态库中的函数(例如,myfunc()
)(例如,libmylib.a
)。此函数从数学库中调用cosf()
和sinf()
函数。
现在,在gcc命令行中,我给出了-lmylib -lm
选项,并且构建正常。但是,当更改库的顺序时,构建将失败并显示错误:
libmylib.a(mylib.o): In function `myfunc':
mylib.c:22: undefined reference to `cosf'
mylib.c:23: undefined reference to `sinf'
为什么gcc没有按照某种顺序给出的库完成构建?