使用 gcc 命令行从 .c 文件构建 .so 文件

Posted

技术标签:

【中文标题】使用 gcc 命令行从 .c 文件构建 .so 文件【英文标题】:Build .so file from .c file using gcc command line 【发布时间】:2013-01-30 19:17:30 【问题描述】:

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

#include <stdio.h>
void hello()

    printf("Hello world!\n");

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

【问题讨论】:

【参考方案1】:

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

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

这将生成一个目标文件 (.o),现在您可以使用它并创建 .so 文件:

gcc hello.o -shared -o libhello.so

编辑:来自 cmets 的建议:

你可以使用

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

一步完成。 – Jonathan Leffler

我还建议在您的gcc 命令中添加-Wall 以获取所有警告,并添加-g 以获取调试信息。 – Basile Starynkevitch

【讨论】:

gcc -shared -o libhello.so -fPIC hello.c一步完成。

以上是关于使用 gcc 命令行从 .c 文件构建 .so 文件的主要内容,如果未能解决你的问题,请参考以下文章

请问我有一个.so文件,如何在Linux下编程使用呢?

如何使用 python 命令行从文件中运行 python 函数?

怎么生成mips,mips64的so

使用 Lua 链接动态 lib.so 时出错

cython编译Python为c语言

LLINUX GCC 编译C使用自定义动态链接库.so的问题