我有一個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'的輸出嗎 – askmish 2012-08-03 11:07:46