我試圖從'test.c'& test.exp
文件構建共享庫lib_test.so
。這lib_test.so
文件將用作另一個應用程序的擴展。 應用程序文檔通過以下命令指定代TLE lib_test.so
文件的直接在單次通過:拆分生成一個共享對象庫(.so)文件,而不是一個
`gcc -q64 -o lib_test.so test.c -bM:Sre -bE:test.exp -bnoentry`
但我的要求是建立在兩次通過庫:
- 編譯以生成
test.o
文件使用gcc
命令。 - 鏈接生成庫
lib_test.so
使用ld
命令。
我嘗試這樣做如下:
- 執行的編譯步驟如下:
gcc -q64 -c -o test.o test.c
。 - 創建
lib_test.so
如下:ld -bM:Sre -bE:test.exp -bnoentry -o lib_test.so test.o
但它不是產生一個適當的lib_test.so
文件。
我使用Ubuntu 16.04 LTS 64位與最新的GCC
可否請您建議的過程分成兩個傳遞正確的方法...
感謝&問候。
你的意思是「它沒有生成正確的'lib_test.so'文件」?你有構建錯誤嗎?加載庫時出錯?還有別的嗎?請詳細說明。 –
當我一次構建'lib_test.so'時,我得到12619字節大小的文件,應用程序加載該庫很好,但在構建兩次使用時,輸出'lib_test.so'文件爲11816字節,應用程序顯示'loading extension failed' for'lib_test.so'錯誤。 – Anirban