作者nowar100 (拋磚引玉)
看板C_and_CPP
標題[問題] 使用 DSO 的問題 (*.so)
時間Sun Oct 10 14:36:02 2010
遇到的問題: (題意請描述清楚)
小弟最近在練習如何使用 .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
→ nowar100:謝謝樓上,我看完了,還是不知道問題在哪,可否提點一下 10/10 16:25
推 final01:我也不是很懂不過如果你取名為 libfoo.so就可以用了 10/10 17:13
→ nowar100:謝謝樓上 我發現系統中會有 libxxx.so 連向 libxxx.so.x 10/10 17:34
→ weiyucsie:3.5 上下那些應該可以解決問題吧? 10/10 17:56