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

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

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

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

219431 次浏览

要生成共享库,首先需要用-fPIC(位置独立代码)标记来编译C代码。

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

这将生成一个object文件(.o),现在你使用它并创建.so文件:

gcc hello.o -shared -o libhello.so

编辑:评论中的建议:

你可以使用

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

一步到位。——Jonathan Leffler

我还建议在gcc命令中添加-Wall来获取所有警告,并添加-g来获取调试信息。——Basile Starynkevitch