我的問題與this question不一樣。是否可以靜態鏈接到共享對象?
我正在使用獨立二進制文件進行項目,該文件沒有動態/外部鏈接,並且在* nix環境中運行。
我試圖移動到一個較新的工具集來構建,但一些舊工具集可用的靜態庫現在不可用 - 例如,提供了_start的crt庫aren在這個工具集中沒有提供。
我已經挖通過提供與供應商的工具包中的文件,發現與我從CRT庫所需的符號一些共享對象(例如,_start,_fini等),但我不確定是否有一個直接將一個共享對象靜態鏈接到一個二進制文件中,並且還可以執行該二進制文件。
簡版:非共享對象二進制文件可以靜態鏈接到共享對象而不會變成另一個共享對象嗎?
您的原始獨立二進制文件是否已被靜態鏈接?你能否提供一些關於你實際擁有的細節,以及你需要達到什麼? – 2011-07-31 11:32:51
在最初的項目中,使用舊的工具集時,有一些提供的(靜態)庫,鏈接時使它成爲獨立的可運行二進制文件。在較新的工具集中,其中一些東西缺少靜態庫,但有幾個共享對象提供這些符號。基本上我想知道的是,共享對象可以靜態鏈接到獨立的二進制文件中。 – 2011-08-01 17:51:50
最後一個問題的確切答案是「不」。當您創建共享庫時,靜態鏈接所需的信息將不可挽回地丟失。 – 2011-08-01 18:07:10