【LINUX】無法將庫目錄新增到ld

2020-12-20 LINUX

我已經在家中建立了自己的庫目錄(/home/mathieu/lib)。我在這個目錄中有一個名為libmath.so的庫。
要將此目錄新增到ld,我已在te檔案/etc/ld.so.conf中添加了路徑。我通過執行sudo ldconfig重新載入了快取。
當我執行sudo ldconfig -p | grep libmath.so時,我得到libmath.so (libc6) => /home/mathieu/lib/libmath.so。所以有效。
問題
當我執行ld -lmath時,我得到:

attempt to open /usr/i486-linux-gnu/lib32/libmath.so failed
attempt to open /usr/i486-linux-gnu/lib32/libmath.a failed
attempt to open /usr/local/lib32/libmath.so failed
attempt to open /usr/local/lib32/libmath.a failed
attempt to open /lib32/libmath.so failed
attempt to open /lib32/libmath.a failed
attempt to open /usr/lib32/libmath.so failed
attempt to open /usr/lib32/libmath.a failed
attempt to open /usr/local/lib/i386-linux-gnu/libmath.so failed
attempt to open /usr/local/lib/i386-linux-gnu/libmath.a failed
attempt to open /usr/local/lib/libmath.so failed
attempt to open /usr/local/lib/libmath.a failed
attempt to open /lib/i386-linux-gnu/libmath.so failed
attempt to open /lib/i386-linux-gnu/libmath.a failed
attempt to open /lib/libmath.so failed
attempt to open /lib/libmath.a failed
attempt to open /usr/lib/i386-linux-gnu/libmath.so failed
attempt to open /usr/lib/i386-linux-gnu/libmath.a failed
attempt to open /usr/lib/libmath.so failed
attempt to open /usr/lib/libmath.a failed
ld: cannot find -lmath

ld甚至不在/home/mathieu/lib路徑中查詢。
gcc test.c -o test -lmath退貨
/usr/bin/ld: cannot find -lmath
collect2: error: ld returned 1 exit status

你有解決辦法嗎?
謝謝。

解決辦法

您可以使用LIBRARY_PATH新增要由gcc搜尋以進行編譯的目錄,

export LIBRARY_PATH=$HOME/lib

或者,您可以將庫新增到-L命令列標誌中
gcc test.c -o test -lmath -L$HOME/lib

問題是您對gcc的修改將在應用程式啟動時用於查詢正確的庫(而不是在編譯時)。

出處

Have any Question?

Let us answer it!