【问题标题】:Building on another platform?在另一个平台上构建?
【发布时间】:2014-04-28 23:17:08
【问题描述】:

我正在尝试使用 gcc 构建一个 c++ 应用程序,以便在 Cent OS 等上运行它。问题是,在 Cent OS 中编译它比开发更难。我正在使用 2 个库,MySQL C API 和 boost asio。 MySQL C API 对每个操作系统都有不同版本的库。这让我相信获得 ubuntu 版本并在 Cent OS 上运行它是一个糟糕的主意。

是否推荐以下:

在 ubuntu 中构建程序并使用专为 Cent OS 设计的库。然后将可执行文件从 ubuntu 复制到 Cent OS。

如果以上是个好主意,我可以在 windows 上构建它吗?

【问题讨论】:

  • 只是大声思考...如果应用程序没有在另一个系统上编译那么复杂,也许您应该考虑使用不同的工具集,例如 Python?这样您就不会遇到多平台支持问题。
  • 只要你使用的函数的API签名相同就可以了(这就是动态库的目的)。或者,您可以链接到静态库并让所有内容自包含。
  • @Lawrence:不,不是这么简单:P

标签: c++ ubuntu operating-system centos


【解决方案1】:

为不同的linux版本制作不同的库的主要原因是因为它们使用了对不同系统.so文件的依赖。

在 Ubuntu 上使用设计用于 Cent OS 的库并不是一个好主意,因为在编译时,它们(可能)动态链接到您的 Ubuntu 系统 .so 文件。 你永远无法保证它会起作用。

您建议在 Ubuntu 系统中安装 Cent OS 版本的库可能有效,但您需要先对其进行测试。 如果你可以在 Cent OS 系统上运行你的 Ubuntu 编译程序,那么你就可以安全了。 只要确保每次要安装库时都进行此测试:)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-15
    • 1970-01-01
    • 2012-08-03
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多