2 回答

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超4個(gè)贊
本機(jī)鏈接器找不到共享對(duì)象。將帶有 so 的文件夾添加到您的 .LD_LIBRARY_PATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:Libraries/
或者,您可以將其添加到本地庫文件夾(通常)并重新運(yùn)行 。/usr/local/lib
ldconfig

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超2個(gè)贊
所以我終于找到了為什么,這不是從多個(gè)文件使用多個(gè)函數(shù)的方法。您只需將所需的所有文件放在gcc命令中即可。我不知道為什么我試圖使一個(gè)文件的庫依賴于另一個(gè)文件的另一個(gè)庫。這是我的項(xiàng)目的命令:
gcc -fPIC -shared -I"$$JAVA_HOME/include" -I"$$JAVA_HOME/include/linux" ../IndexationTexte/indexationV1.c ../IndexationTexte/fileMot.c -o Libraries/libindexation.so
對(duì)于更通用的方法,如果您有:
file1.c :
#include "file2.c"
void function1()
{
function2();
}
file2.c :
void function2()
{
printf("hey from an other file");
}
你必須像這樣簡(jiǎn)單地編譯你的項(xiàng)目:
gcc -fPIC -shared -I"$$JAVA_HOME/include" -I"$$JAVA_HOME/include/linux" file1.C file2.c -o libmylibrary.so
添加回答
舉報(bào)