2 回答

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

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