我正在尝试为 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
我还建议在您的 gcc
命令中添加 -Wall
以获取所有警告,并添加 -g
以获取调试信息。 – Basile Starynkevitch
https://stackoverflow.com/questions/14884126/