求助 关于linux 动态库的问题
小弟写了个简单的hello.c 文件内容如下
#include <stdio.h>
int fun()
{
printf("hello world\n");
return 0;
}
将其编译为动态库 gcc -o libhello.so -fPIC -shared hello.c
然后写了个测试程序 main.c 内容如下
#include <stdio.h>
int main()
{
fun();
return 0;
}
接下来编译为可执行程序 gcc -o main -L. -lhello main.c
报错
/tmp/ccOjZgoi.o: In function `main':
main.c:(.text+0x7): undefined reference to `fun'
collect2: ld returned 1 exit status
但是 我这样写 gcc -o main libhello.so success
请问这是什么问题啊 Linux GCC 动态库
[解决办法]
hello.c有没有对应的hello.h呀
main.c下是不是需要#include <hello.h>呀!
[解决办法]
sudo cp libhello.so /lib 然后在编译main.c
[解决办法]
嗯,就是因为系统默认的没找到这个库,楼上正解
[解决办法]
没见过这种写法 不过求普及
[解决办法]
main.c加声明extern int fun();