我可以成功地交叉編譯上使用以下命令針對QNX OS(x86)的窗口升壓:b2 toolset=qcc target-os=qnx threadapi=pthread
交叉編譯升壓1.60.0內部的依賴問題
然而,由於某些原因,它似乎是導致庫文件不能正確鏈接到內部依賴關係。
例如做的單元測試框架結果的objdump的在:
Dynamic Section:
NEEDED bin.v2\libs\timer\build\qcc\release\target-os-qnx\threadapi-pthread\threading-multi\libboost_timer-qcc-mt-1_60.so.1.60.0
NEEDED bin.v2\libs\system\build\qcc\release\target-os-qnx\threadapi-pthread\threading-multi\libboost_system-qcc-mt-1_60.so.1.60.0
NEEDED libm.so.2
NEEDED libc.so.3
正如你可以看到有鏈接到定時器和系統庫(也QNX,既像一個荒謬的路徑linux,將'\'解釋爲轉義字符,所以我不能在QNX機器中使用文件夾結構)。我手動編輯庫的二進制文件,並刪除該路徑(我知道這是非常危險的......)到:
Dynamic Section:
NEEDED libboost_timer-qcc-mt-1_60.so.1.60.0
NEEDED libboost_system-qcc-mt-1_60.so.1.60.0
NEEDED libm.so.2
NEEDED libc.so.3
其中一期工程。是否有可能迫使Boost不把整個路徑包括進圖書館?這是一個提升問題還是QNX 6.6 qcc工具鏈問題?我真的不想手動編輯每個庫的二進制文件...
在我看來,你沒有使用構建過程的'install'(甚至是'stage')步驟。這將從編譯目錄的複雜層次結構中收集編譯的所有相關輸出,並將所有二進制文件放入一個位置。 –
@DanMašek就我所知,它應該是'stage'默認的。輸出文件被構建爲boost_root \ stage \ lib \ –
哦,我明白了。有趣。 –