【发布时间】:2013-01-24 18:37:45
【问题描述】:
我正在寻找如何在 ubuntu 32 位架构中为 64 位架构编译项目的教程。我必须把这个项目放在 x86_64 架构的共享主机上。我无法在远程机器上编译这个项目,因为我没有权限为这个项目安装一些依赖项。
当我尝试从我的计算机(ubuntu 32 位)放置已编译的项目时,由于浮点异常,执行失败。与简单的 hello_world 应用程序相同的场景。
我是 gcc 和 ld 的初学者,我一直在使用已编译的包,但现在我必须针对与我不同的目标机器进行编译。
现在我发现我需要安装 g++-multilib 并将 CCFLAGS -m64 添加到 gcc。
现在我有这样的错误:
/usr/bin/ld: skipping incompatible /usr/lib/libc.so when searching for -lc
有没有办法在应用程序中编译依赖库,这样我就不必在远程机器上解析依赖库了。
【问题讨论】:
-
您有 64 位处理器吗?您不能安装 64 位发行版,并为您的 32 位特定事物使用 32 位
chroot子系统吗?如果您没有 64 位处理器(例如,只有旧的 ATOM 上网本),您可能会遇到麻烦(因为在 32 位处理器上模拟 64 位机器既痛苦又缓慢)。 -
在远程机器上有 Intel Xeon E5620 4 核和 x86_64 linux。在我的笔记本电脑上有旧的 Pentium IV 而不是 64 位。我只想编译项目并复制到服务器并在那里运行它。我不想在我的笔记本电脑上运行已编译的项目。
标签: linux gcc shared-libraries static-libraries ld