【发布时间】:2011-12-07 15:42:51
【问题描述】:
我使用下面的代码创建了一个 .so 文件,但是当我使用 GCC 编译一个调用 .so 文件中的函数的文件时,我收到“未定义对 'outlib1' 的引用”错误。
我的代码或命令有什么问题?谢谢。
操作系统 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
【问题讨论】:
-
在专用的 StackExchange 网站askubuntu.com 上问这个怎么样?
-
@nulltoken 这不是 Ubuntu 问题。这是一个连接问题。
-
@nulltoken:不,这里是主题,不是那里。
-
您是否创建了一个带有函数声明的头文件?此类文件必须包含在您的
main.c中。 -
@Mat 好的。但是,askubuntu 表示“我们欢迎有关 Ubuntu 开发的问题。”。 ;)
标签: c linux gcc shared-libraries