当前位置: 技术问答>linux和unix
求助 关于linux 动态库的问题
来源: 互联网 发布时间:2017-04-13
本文导语: 小弟写了个简单的hello.c 文件内容如下 #include int fun() { printf("hello worldn"); return 0; } 将其编译为动态库 gcc -o libhello.so -fPIC -shared hello.c 然后写了个测试程序 main.c 内容如下 #include ...
小弟写了个简单的hello.c 文件内容如下
#include
int fun()
{
printf("hello worldn");
return 0;
}
将其编译为动态库 gcc -o libhello.so -fPIC -shared hello.c
然后写了个测试程序 main.c 内容如下
#include
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
请问这是什么问题啊
#include
int fun()
{
printf("hello worldn");
return 0;
}
将其编译为动态库 gcc -o libhello.so -fPIC -shared hello.c
然后写了个测试程序 main.c 内容如下
#include
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
请问这是什么问题啊
|
hello.c有没有对应的hello.h呀
main.c下是不是需要#include 呀!
main.c下是不是需要#include 呀!
|
sudo cp libhello.so /lib 然后在编译main.c
|
嗯,就是因为系统默认的没找到这个库,楼上正解
|
没见过这种写法 不过求普及
|
main.c加声明extern int fun();