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

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

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

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

【问题讨论】:

    标签: c linux gcc shared-libraries


    【解决方案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一步完成。
    猜你喜欢
    • 2021-12-04
    • 1970-01-01
    • 1970-01-01
    • 2020-10-09
    • 2015-09-03
    • 1970-01-01
    • 2018-10-10
    • 2021-10-29
    • 1970-01-01
    相关资源
    最近更新 更多