我有一个使用多个目标文件的 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
不幸的是,这会产生相同的未定义引用错误,例如以不正确的顺序指定对象。
我没有找到任何链接器或存档器选项来使其正常工作,即使我认为这个问题应该相对常见,谷歌搜索也没有解决方案。
请问有人知道解决方案吗?
问候简