繁体   English   中英

在Linux环境下构建32位和64位应用程序(C ++)

[英]Linux environment to build 32 and 64-bit application (C++)

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

据我所知,我需要一个可以同时构建32和64的64位OS。添加-m32标志将为32提供正确的输出,在这里没有挑战。

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

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

谢谢您的帮助!

大多数具有64位版本的Linux版本也都具有32位版本,并且几乎所有库都可用于这两种版本,因此您所需要做的就是将相关的32位库与64位库并行安装。 在大多数情况下,路径的配置与纯64位或32位版本相同。 可能有几个库有问题,但是您确实需要寻找这些库。 所有主流数据包都将具有可同时安装32位和64位库版本的库。

当涉及到“哪个libc”等问题时,这是一个更困难的问题,因为这实际上取决于客户在他们的计算机上拥有什么-您不太可能指示他们应该使用Debian,RedHat或SuSE中的一种-无论使用什么,他们都会感到非常强烈。 使用“太旧”的库与使用“太新”的库一样糟糕。 通常的解决方案是构建多个版本,一个用于选定的RedHat发行版(该版本应与较新/较旧的版本(通常以及同一范围内的Fedora版本)配合使用,仅需几个步骤即可),Debian版本和SuSE版本,也许还有一两个发行版。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM