198

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

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

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

4

1 回答 1

367

要生成共享库,您首先需要使用-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

一步完成。——乔纳森·莱弗勒

我还建议在您的命令中添加-Wall以获取所有警告并-g获取调试信息。gcc——巴西尔·斯塔林克维奇

于 2013-02-14T21:14:47.120 回答