我正在尝试为Linux动态库(.so文件)创建一个“hello world”项目。因此,我有一个名为hello.c的文件:
#include <stdio.h>
void hello()
{
printf("Hello world!\n");
}
如何使用命令行中的gcc创建一个导出hello()
的.so文件?
我正在尝试为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
添加到您的 gcc
命令中以获取所有警告,并将 -g
添加到获取调试信息。- Basile Starynkevitch
gcc -shared -o libhello.so -fPIC hello.c
一步完成。 - Jonathan Leffler