我用下面的代码创建了一个 .so
文件,但是当我用 GCC 编译一个调用 .so
文件中的函数的文件时,我得到一个“undefined引用 'outlib1'"错误。
我的代码或命令有什么问题?谢谢。
操作系统 Ubuntu 11.10
海合会 4.6.1
//file name outscreen.c
#include <stdio.h>
void outlib1(void)
{
printf("out screen func1\n");
}
//file name main.c
int main(int argc, char* argv[])
{
outlib1();
}
gcc outscreen.c -fPIC -shared -o outscreen.so
gcc main.c -L. -loutscreen -o call
./call
最佳答案
尝试:
$ gcc outscreen.c -fPIC -shared -o liboutscreen.so
$ gcc main.c -L. -loutscreen -o call
(注意第一行的变化——第二行没有变化)
关于c - 对自定义共享库的 undefined reference ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8418088/