【问题标题】:How to create static binary which runs on every distro?如何创建在每个发行版上运行的静态二进制文件?
【发布时间】:2013-01-28 07:59:35
【问题描述】:

一些 Linux 应用程序,如 supertuxkart 或 regnum online 具有静态二进制文件,下载后无需安装任何共享库即可运行。在每个发行版上。我怎样才能做出这样的应用程序?

【问题讨论】:

    标签: linux gcc g++ packaging


    【解决方案1】:

    确保您的所有资源都包含在可执行文件中并静态链接可执行文件:

    gcc -o foo main.o -static -lbaz -lbar
    

    但是,这也有缺点。查找动态链接。

    【讨论】:

    • 如果我静态链接 lib A,它本身链接 lib B,我是否也必须链接 lib B?
    • @user1873947:静态链接时,库不能引用其他库。您必须在命令行上将它们全部命名,或使用libtool
    • 好的。对于二进制文件,有一个 linux 命令,它说明它使用什么共享库,库有类似的东西吗?检查我需要链接的内容。
    • @user1873947:不,因为你无法通过设计知道。静态库存档 (.a) 是一堆函数。 pkg-config 知道库作者何时可以创建 .pc 文件,否则您阅读文档并获得乐趣。
    • @user1873947:-static-libgcc-static-libstdc++
    猜你喜欢
    • 2017-02-16
    • 2021-05-11
    • 2017-03-20
    • 2017-04-08
    • 2020-06-16
    • 2011-02-13
    • 1970-01-01
    • 1970-01-01
    • 2012-01-17
    相关资源
    最近更新 更多