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

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


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

最佳答案

要生成共享库,您首先需要使用-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命令中添加-g以获取所有警告,并添加gcc以获取调试信息。 – Basile Starynkevitch

关于c - 使用gcc命令行从.c文件构建.so文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59830864/

10-11 22:05
查看更多