[問題] 使用 DSO 的問題 (*.so)

看板C_and_CPP (C/C++)作者 (拋磚引玉)時間15年前 (2010/10/10 14:36), 編輯推噓1(104)
留言5則, 3人參與, 最新討論串1/1
遇到的問題: (題意請描述清楚) 小弟最近在練習如何使用 .so 我有寫了一個 foo.h 內容是 void foo(); 還有一個 foo.c 內容是 void foo() { } 使用指令 gcc -shared -fPIC -Wl,-soname,libfoo.so.1 -o libfoo.so.1.0.0 foo.c 這時候目錄下會產生一個 libfoo.so.1.0.0 接著我用指令 ln -s libfoo.so.1.0.0 libfoo.so.1 來建立一個 soft link 所有東西都放在同個目錄下 現在我寫了一個 main.c #include "foo.h" int main() { foo(); } 使用指令 gcc main.c -L. -lfoo 但是卻得到回應是 /usr/bin/ld: cannot find -lfoo collect2: ld returned 1 exit status 小弟就卡在這邊很久了 一直想不通,我已經有加了 -L 和 -l,為什麼他還是找不到 希望有經驗的大大可以指導一下 謝謝 m(_ _)m -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.250.174.228

10/10 16:01, , 1F

10/10 16:25, , 2F
謝謝樓上,我看完了,還是不知道問題在哪,可否提點一下
10/10 16:25, 2F

10/10 17:13, , 3F
我也不是很懂不過如果你取名為 libfoo.so就可以用了
10/10 17:13, 3F

10/10 17:34, , 4F
謝謝樓上 我發現系統中會有 libxxx.so 連向 libxxx.so.x
10/10 17:34, 4F

10/10 17:56, , 5F
3.5 上下那些應該可以解決問題吧?
10/10 17:56, 5F
文章代碼(AID): #1CiLxL7H (C_and_CPP)
文章代碼(AID): #1CiLxL7H (C_and_CPP)