1
我的c應用程序鏈接.so庫。但應用說.so:未定義引用'min'
library.so:未定義的引用 '分鐘'
我的編譯器指令,如:
的gcc -o test.o library.so -ldl - lpthread -lm
有沒有解決方法?請幫我
我的c應用程序鏈接.so庫。但應用說.so:未定義引用'min'
library.so:未定義的引用 '分鐘'
我的編譯器指令,如:
的gcc -o test.o library.so -ldl - lpthread -lm
有沒有解決方法?請幫我
你需要傳遞-library與gcc而不是library.so,還提供library.so位置
gcc -L/path/to/library.so -o test.o -llibrary -ldl -lpthread -lm
我認爲它是'-lrary'而不是'-llibrary'! – Sathish 2014-09-04 05:46:31
如果你能得到你的代碼進行編譯,但是當你試圖執行代碼,那麼你的應用程序就不能在運行時找到你已經鏈接到的庫。這可以通過兩種方式解決。您可以通過配置/etc/ld.so.conf添加您放置在/etc/ld.so.conf.d/中的信息來將庫的位置添加到庫緩存。或者,您可以使用'rpath'信息在可執行文件頭中包含庫的位置。 – 2014-09-04 05:23:21
在這種情況下,找到該庫,但該庫包含一個不存在的符號('min')。要麼修復庫鏈接到可以找到min的位置(或者實現函數),要麼如果這是不可能的,請自行提供min()(或者鏈接它存在的庫,如果有的話)。 – perh 2014-09-04 09:18:18