【发布时间】:2012-08-01 09:00:51
【问题描述】:
我有一个使用多个目标文件的 C 项目,需要按特定顺序链接这些目标文件以查找所有需要的符号。
例如这个命令可以正常工作(lib2.o 依赖于 lib1.o 等)
gcc -o my_app main.o lib1.o lib2.o lib3.o -lm
但是
gcc -o my_app main.o lib3.o lib2.o lib1.o -lm
以对“my_variable”错误的未定义引用结束。
这是一种已知行为,可以通过将这些对象添加到链接描述文件中的 GROUP 部分来解决。
现在我想将这些对象作为静态库与我的同事共享。所以...
ar -rcs mylib.a lib1.o lib2.o lib3.o
gcc -o my_app main.o mylib.a -lm
不幸的是,这会产生相同的未定义引用错误,例如以不正确的顺序指定对象。
我没有找到任何链接器或存档器选项来使其正常工作,即使我认为这个问题应该相对常见,谷歌搜索也没有解决方案。
请问有人知道解决办法吗?
问候 一月
【问题讨论】:
-
你能显示
nm -s mylib.a的输出吗
标签: gcc linker static-libraries unix-ar