gcc 4.8在.so库中找不到参考

gcc 4.8在.so库中找不到参考,gcc,hyperlink,compilation,shared-libraries,Gcc,Hyperlink,Compilation,Shared Libraries,我在x.c中编写了一个.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: err

我在x.c中编写了一个.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。有人知道为什么吗? 非常感谢。

试试:

gcc -o main main.c -L . -lx
而不是:

gcc -o main -L. -lx main.c
这对我很有用:

$LD\u LIBRARY\u PATH=。

$export LD\u LIBRARY\u PATH

$。/main

$

相关问题:
- ;
-