我使用下面的代码创建一个.so
文件,但是当我编译一个使用GCC调用.so
文件中的函数的文件时,我得到一个“对'outlib1'的未定义引用”错误。
我的代码或命令出了什么问题?感谢。
OS Ubuntu 11.10
gcc 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
答案 0 :(得分:6)
尝试:
$ gcc outscreen.c -fPIC -shared -o liboutscreen.so
$ gcc main.c -L. -loutscreen -o call
(注意第一行的变化 - 第二行没有变化)
答案 1 :(得分:0)
这是什么输出?
nm outscreen.so | grep outlib1
也许是用下划线导出。