2009-10-23 120 views
1

我想为我的一些C++组件构建64位库。是否需要直接在物理机上运行的操作系统中编译/链接库?或者,我可以使用在ESX服务器中作为虚拟机运行的操作系统来构建库吗?如果我在虚拟机中构建,我是否需要照顾任何东西?请指教构建64位库

我对32/64位的linux感兴趣。

在此先感谢!

+0

我以为你只是选择编译它为64位?你还必须在64位机器上完成它吗? – Svish 2009-10-23 08:25:32

+0

我可以在任何机器上做到,如果我能做到的话。 – vpram86 2009-10-23 08:30:22

回答

2

如果客户操作系统是64位的,并且您有64位编译器,那么没有理由不能在虚拟化操作系统中编译和运行64位库/应用程序。

+0

如果我们稍后在物理机器上运行它会产生什么问题吗 – vpram86 2009-10-23 08:28:02

+0

对于所有意图和目的当你运行一个虚拟化的64位操作系统时,你的*是在64位硬件上运行的,所以这些二进制文件将运行在物理的64位硬件上 但是你应该确定你没有使用特殊的编译器构建这可能会挂钩到管理程序中,如果您使用库存GCC编译器这种情况不太可能发生, – alexr 2009-10-23 08:55:33

+0

非常感谢!我现在非常清楚 – vpram86 2009-10-23 09:28:41

1

根据编译器的不同(您使用的是什么?),您甚至可能只需将正确的选项传递给它就可以编译它,即使在32位计算机上也是如此。

+0

我在32位SuSE 7.3机器上安装了gcc 2.96。我使用它的32位。当我尝试-m64时,它没有识别该标志,而在另一台机器上它要求64位系统库。我认为在64位构建32位是可能的,但不是相反。 – vpram86 2009-10-23 08:27:21

1

这是有点特定于平台的。例如:在Windows上,我在32位计算机上构建64位二进制文​​件(我使用VS安装了64位编译器),并确保目标上有正确的可再发行包。

+0

我同意。我做同样的事情。我特别想知道关于linux的问题。我将编辑标签。 – vpram86 2009-10-23 08:28:38

+0

你在使用multilib吗?请参阅:http://www.airs.com/ian/configure/configure_8.html – dirkgently 2009-10-23 08:31:39

+0

不,我没有使用它。 :( – vpram86 2009-10-23 08:33:08