我有2個靜態庫,cc靜態鏈接:如何導入只有一個.a庫的所有符號?
libalgha.a
與2層的功能:與鏈接func3()
和func4()
我有1個可執行文件(mytest
):func1()
和func2()
和
libbeta.a
2個功能這2個庫。可執行文件僅調用func1()
和func3()
。所以據我所知,鏈接器只會將這兩個函數的符號放入可執行文件中。
可執行文件在運行時加載了dlopen()
共享庫(libgamma.so
),此共享庫使用libalgha.a
的函數func2()
。當運行mytest
我得到的錯誤:
symbol func2: referenced symbol not found
我不能包括libalgha.a
內libgamma.so
因爲在Solaris 32/64位問題。
那麼如何鏈接mytest
與libalgha.a
的所有符號?
感謝您的快速答覆,問題是,在現實中,有這個靜態庫中有數百個函數,這就是爲什麼我要尋找一個更通用的選項,比如「import-all-symbols-of-this-library」。事實上,--whole-archive選項在Solaris中不可用。 – jav