使用gcc命令行从.c文件构建.so文件

226

我正在尝试为Linux动态库(.so文件)创建一个“hello world”项目。因此,我有一个名为hello.c的文件:

#include <stdio.h>
void hello()
{
    printf("Hello world!\n");
}

如何使用命令行中的gcc创建一个导出hello()的.so文件?

1个回答

409

为了生成共享库,您需要首先使用-fPIC(位置独立代码)标志编译C代码。

gcc -c -fPIC hello.c -o hello.o

这将生成一个目标文件(.o),现在您需要使用它来创建 .so 文件:

gcc hello.o -shared -o libhello.so
编辑: 来自评论的建议:

您可以使用

gcc -shared -o libhello.so -fPIC hello.c

可以在一步中完成。- Jonathan Leffler

我还建议您将 -Wall 添加到您的 gcc 命令中以获取所有警告,并将 -g 添加到获取调试信息。- Basile Starynkevitch


96
或者使用gcc -shared -o libhello.so -fPIC hello.c一步完成。 - Jonathan Leffler

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接