爲什麼找不到ld庫libjarray.so?gcc,cygwin:創建庫時無法找到依賴的庫
gcc -shared -Wl,-soname,libjstring.so.0.1 -I/home/jocke/development/jstring/../jarray/output -I/home/jocke/development/jstring -L/home/jocke/development/jstring/../jarray/output -ljarray jstring.o -o libjstring.so.0.1
/usr/lib/gcc/x86_64-pc-cygwin/4.8.3/../../../../x86_64-pc-cygwin/bin/ld: cannot find -ljarray collect2: error: ld returned 1 exit status
$ ls -l /home/jocke/development/jstring/../jarray/output total 79<br> lrwxrwxrwx 1 jocke Domain Users 41 Oct 29 11:58 jarray.c -> /home/jocke/development/jarray/jarray.c -rw-r--r-- 1 jocke Domain Users 9840 Oct 29 11:25 jarray.o lrwxrwxrwx 1 jocke Domain Users 52 Oct 29 11:58 jarray_test.c -> /home/jocke/development/jarray/utest/jarray_test.c lrwxrwxrwx 1 jocke Domain Users 16 Oct 29 11:58 libjarray.so -> libjarray.so.0.1 -rwxr-xr-x 1 jocke Domain Users 62905 Oct 29 11:58 libjarray.so.0.1
「-ljarray」選項使ld使用歸檔文件「libjarray.ar」進行鏈接。 「爲什麼不能在下面找到庫libjarray.so?」因爲ld不會找到「libjarray.so」而是「libjarray.ar」。 – 2014-10-29 04:33:09
所以你的意思是這是錯誤的:http://www.cprogramming.com/tutorial/shared-libraries-linux-gcc.html? 「 告訴GCC在哪裏可以找到共享庫 呃 - 哦!連接器不知道在哪裏可以找到libfoo.GCC有一個默認顯示的地方列表,但是我們的目錄不在那個列表中。在這個例子中,我們將使用當前目錄/ home/username/foo: $ gcc -L/home/username我們需要告訴GCC在哪裏可以找到libfoo.so。/foo -Wall -o test main.c -lfoo 「 – Joachim 2014-10-29 04:47:24
而且,如果您認爲這是錯誤的 - 您應該如何編寫它? – Joachim 2014-10-29 10:12:41