c - 使用 gcc 命令行从 .c 文件构建 .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

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

https://stackoverflow.com/questions/14884126/

相关文章:

python - 在python中将一个列表插入另一个列表的语法是什么?

python - 在 Pandas 中将 float 转换为整数?

mysql - 有没有办法只安装mysql客户端(Linux)?

linux - 将主机端口转发到 docker 容器

linux - 以不同用户身份运行 Linux 服务的最佳实践

python - 如何编写符合 PEP8 的超长字符串并防止 E501

python - 在外部范围中定义的阴影名称有什么问题?

python - 如果在 Python 中为 None,是否有返回默认值的简写?

linux - 了解 Linux/proc/pid/maps 或/proc/self/maps

python - 如何使用 Pyplot 在所有子图之上设置一个主标题?