【问题标题】:Can C/C++ build all dynamic libraries into one bin file?C/C++ 可以将所有动态库构建到一个 bin 文件中吗?
【发布时间】:2016-11-25 09:01:56
【问题描述】:

当我跨不同操作系统进行开发时,我发现构建在一个 Linux 系统上的程序不能在另一个系统上运行,因为 libc 版本不同。

如何像 golang 在 c/c++ 中那样构建所有共享库?

包括libc和libcxx

【问题讨论】:

  • 我只想链​​接静态库等
  • cc -static 等通常对我有用。 man cc 了解更多关于 -static 开关的细节。
  • 你不能这样做,因为不同的平台有不同的架构,而且还记得 C 只是源代码可移植,而不像 java 那样独立于平台

标签: c++ c go dynamic libc


【解决方案1】:

如果您想在多个 Linux 系统上运行,您真正需要的只是使用其中任何一个中最古老的 glibc 进行构建。最简单的方法是简单地从 CentOS 5 等旧系统下载虚拟机​​映像并在那里构建。您无需担心静态链接,只需针对旧版本进行构建就意味着您几乎可以与新版本兼容。

【讨论】:

    猜你喜欢
    • 2011-07-23
    • 2011-04-25
    • 2022-01-18
    • 1970-01-01
    • 2011-06-01
    • 2012-08-04
    • 2022-11-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多