2014-06-18 157 views
0

我在寫XC一個.so lib中找到參考:GCC 4.8不.so庫

int x() { return 0; } 

並將其編譯爲:

gcc -o libx.so --shared -fPIC x.c 

然後我main.c中做了一個程序:

extern int x(); 
int main() { return x(); } 

然後編譯如下:

gcc -o main -L. -lx main.c 

它總是報告錯誤:

xxx.c:(.text+0xa): undefined reference to `x' 
collect2: error: ld returned 1 exit status 

然而,它與GCC 4.1.2和4.4。任何人都知道爲什麼? 非常感謝。

回答

0

嘗試:

gcc -o main main.c -L . -lx 

相反的:

gcc -o main -L. -lx main.c 

它爲我的作品:

$ LD_LIBRARY_PATH=.
$ export LD_LIBRARY_PATH
$ ./main
$

相關問題:
- one;
- two