我正在考虑开发一个 C++ 程序,该程序需要专有的 32 位库,并且应该在 64 位 Debian(jessie、amd64)上运行。我假设我需要创建一个 32 位可执行文件才能使用该 32 位库(或者有没有办法从 64 位可执行文件使用该库?)
如何在 64 位 Debian 上构建我的程序?或者我应该使用 32 位 Debian 机器来构建它,然后转移到 64 位 Debian?
我通常使用 cmake,如果这有什么区别的话。
答案1
是的,要使用 32 位库,您需要创建 32 位二进制文件。
在 amd64 上的 Debian 8 上,您可以使用以下命令构建 32 位二进制文件gcc-multilib
(对于 C)或g++-multilib
(对于 C++)和 GCC 的-m32
选项。
使用 CMake,我想添加-m32
到标志就足够了。可以在单个项目中为 32 位和 64 位构建设置 CMake,但相当复杂;看rr
的CMakeLists.txt
详细示例。
到跑步32 位二进制文件,您需要启用 i386 的多架构支持:
sudo dpkg --add-architecture i386
sudo apt-get update
然后安装适当的库,从libc6:i386
和开始libstdc++6:i386
。