使用gcc命令行从.c文件生成.so文件

我正在尝试为Linuxdynamic库(.so文件)创build一个hello世界项目。 所以我有一个文件hello.c:

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

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

要生成共享库,您首先需要使用-fPIC (位置独立代码)标志编译您的C代码。

 gcc -c -fPIC hello.c -o hello.o 

这将生成一个目标文件(.o),现在你把它创build.so文件:

 gcc hello.o -shared -o libhello.so 

编辑 :从意见的build议:

您可以使用

 gcc -shared -o libhello.so -fPIC hello.c 

一步到位。 – Jonathan Leffler

我还build议添加-Wall来获取所有的警告信息, -g获取debugging信息到你的gcc命令。 – 巴西尔Starynkevitch