我试图为Linux动态库创建一个hello world项目(。所以文件)。我有一个文件hello。c:
#include <stdio.h>
void hello()
{
printf("Hello world!\n");
}
我如何创建一个.so文件,导出hello(),使用gcc从命令行?
我试图为Linux动态库创建一个hello world项目(。所以文件)。我有一个文件hello。c:
#include <stdio.h>
void hello()
{
printf("Hello world!\n");
}
我如何创建一个.so文件,导出hello(),使用gcc从命令行?
要生成共享库,首先需要使用-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
一步到位。——乔纳森·莱弗勒
我还建议在gcc命令中添加-Wall来获取所有警告,并添加-g来获取调试信息。——Basile Starynkevitch