gpt4 book ai didi

c++ - 构建 32 位和 64 位应用程序的 Linux 环境 (C++)

转载 作者:IT王子 更新时间:2023-10-29 00:58:00 24 4
gpt4 key购买 nike

我正在寻找有关如何为需要针对 32 位和 64 位架构编译的 Linux 应用程序设置构建机器的建议。

据我所知,我需要一个 64 位操作系统,它可以同时构建 32 位和 64 位。添加 -m32 标志将为 32 位生成正确的输出,这里没有挑战。

主要问题是图书馆。我不确定如何继续...如何确保链接器使用的是简单库的 32 位版本,例如 ldl、lz、lrt?我知道我必须安装所有这些的 32 位版本,然后配置链接器路径。

另一个问题是编译器、链接器、libc 等的版本。我应该使用最旧的版本,以确保所有客户端都能正常运行吗?我的意思是,如果我在最新的 Debian 中构建应用程序,那么在旧的 Debian 中它就无法正常工作,对吗?

感谢您的帮助!

最佳答案

大多数具有 64 位构建的 Linux 版本也可以构建 32 位构建,并且几乎所有库都可用于两者,因此您需要做的就是在安装 64 位库的同时安装相关的 32 位库位的。在大多数情况下,路径的配置与纯 64 位或 32 位构建没有什么不同。可能有一些库有问题,但你真的需要去寻找那些。所有主流数据包都将同时安装适用于 32 位和 64 位库版本的库。

当谈到“哪个 libc”等问题时,这是一个更难的问题,因为这实际上取决于您的客户在他们的机器上有什么 - 而且您不太可能规定他们应该使用 Debian, RedHat 或 SuSE - 他们会非常强烈地希望使用他们正在使用的任何东西。使用“太旧”的库与使用“太新”的库一样糟糕。通常的解决方案是构建多个版本,一个用于选定的 RedHat 版本(通常应该与新/旧版本以及同一范围内的 Fedora 版本一起工作几步),一个 Debian 版本,和一个 SuSE 版本,也许还有一两个发行版。

是的,在那个时候,您可能想要设置一台带有几个虚拟机的构建机器,这样您就不必拥有 3、5 或 12 台物理机器。

关于c++ - 构建 32 位和 64 位应用程序的 Linux 环境 (C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17622602/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com