gcc 4.8在.so库中找不到引用

时间:2014-06-18 18:43:19

标签: gcc hyperlink compilation shared-libraries

我在x.c中写了一个.so lib:

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。谁知道为什么? 非常感谢。

1 个答案:

答案 0 :(得分: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