2011-08-22 80 views
0

我在Eclipse(Indigo)中遇到了有關包含我的靜態庫的順序的問題。我正在使用gcc作爲編譯器的CDT中的託管構建器。我的工作區有許多靜態庫項目和一些引用這些庫的可執行項目。我使用微軟的團隊資源管理器Everewhere作爲我的源代碼控制。因爲我已經確保將它們按照正確的順序放置在我的可執行項目中(通過轉到Project - > Properties - > C/C++ Build- - >設置 - > GCC C++鏈接器 - >庫)。但是,如果我在引用的靜態庫上修改項目設置(無論哪個設置都無關緊要),那麼所有正在使用的可執行項目中的庫命令都會重新排序!這種黑魔法的東西不一定會打擾我,如果它只是在這樣做後,但CDT重新排序庫完全錯誤。Eclipse中的庫順序CDT

我懷疑這與我的可執行項目「引用」庫有關,但這是需要的,所以當我更改庫時,可執行項目會根據需要檢測到更改並重新鏈接。我關閉了發現選項,索引和其他一些選項,以查看這些選項是否進行了任何更改。我也搜索了一個解決方案,但無濟於事。我即將關閉託管功能並轉到makefile,但這對我來說是最後一招:)

回答

1

從我的理解來看,當前工作空間中庫的所有排序都來自於引用項目的順序。要更改此項目,請轉至項目屬性頁面,c/C++常規,路徑和符號並使用參考選項卡。更改這將改變cdt在生成庫鏈接順序時使用的順序。

+0

thx,就是這樣! – johnhe4

+1

與此同時,我注意到更改項目的構建配置(從Debug到Release fe)將隨機更改此順序。由於我需要構建多個配置,因此我咬緊牙關,編寫了自己的makefiles。 –