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

Build .so file from .c file using gcc command line

提问人:sashoalm 提问时间:2/15/2013 最后编辑:Rodrigo de Azevedosashoalm 更新时间:9/28/2020 访问量:238915

问:

我正在尝试为 Linux 动态库(.so 文件)创建一个 hello world 项目。所以我有一个文件 hello.c:

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

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

C Linux GCC 共享库

评论


答:

409赞 dreamcrash 2/15/2013 #1

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

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

一步到位。– 乔纳森·莱夫勒

我还建议将获取所有警告和调试信息添加到您的命令中。– 巴西尔·斯塔林克维奇-Wall-ggcc

评论

96赞 Jonathan Leffler 2/15/2013
或者一步到位。gcc -shared -o libhello.so -fPIC hello.c