C++ g++;can';t在x64 debian上找不到已安装的i386软件包
在Debian上编译multi-arch(根据谷歌目前发现的令人沮丧的论坛帖子数量,可能还有其他Linux版本)真的很糟糕。然而,我已经设法解开了一些步骤,总有一天会导致所需的二进制文件。要做的第一件事是允许多拱包管理并选择所需的体系结构:C++ g++;can';t在x64 debian上找不到已安装的i386软件包,c++,linux,gcc,cross-platform,C++,Linux,Gcc,Cross Platform,在Debian上编译multi-arch(根据谷歌目前发现的令人沮丧的论坛帖子数量,可能还有其他Linux版本)真的很糟糕。然而,我已经设法解开了一些步骤,总有一天会导致所需的二进制文件。要做的第一件事是允许多拱包管理并选择所需的体系结构: dpkg --add-architecture i386 apt-get update 在此之后,您可以在apt get期间的任何库名称之后添加:i386,前提是库支持它。所以我为所有我需要的图书馆做了这个。选中此命令可列出系统上的所有i386库: XXX
dpkg --add-architecture i386
apt-get update
在此之后,您可以在apt get期间的任何库名称之后添加:i386
,前提是库支持它。所以我为所有我需要的图书馆做了这个。选中此命令可列出系统上的所有i386库:
XXXXX@ebianvirtualbox:~/$ dpkg -l|grep :i386
ii gcc-4.8-base:i386 4.8.4-1 i386 GCC, the GNU Compiler Collection (base package)
ii gcc-4.9-base:i386 4.9.2-10 i386 GCC, the GNU Compiler Collection (base package)
ii libasan0:i386 4.8.4-1 i386 AddressSanitizer -- a fast memory error detector
ii libatomic1:i386 4.9.2-10 i386 support library providing __atomic built-in functions
ii libboost-dev:i386 1.55.0.2 i386 Boost C++ Libraries development files (default version)
ii libboost1.55-dev:i386 1.55.0+dfsg-3 i386 Boost C++ Libraries development files
ii libc6:i386 2.19-18+deb8u1 i386 GNU C Library: Shared libraries
ii libc6-dev:i386 2.19-18+deb8u1 i386 GNU C Library: Development Libraries and Header Files
ii libc6-i686:i386 2.19-18+deb8u1 i386 GNU C Library: Shared libraries [i686 optimized]
ii libgcc-4.8-dev:i386 4.8.4-1 i386 GCC support library (development files)
ii libgcc1:i386 1:4.9.2-10 i386 GCC support library
ii libgomp1:i386 4.9.2-10 i386 GCC OpenMP (GOMP) support library
ii libitm1:i386 4.9.2-10 i386 GNU Transactional Memory Library
ii libquadmath0:i386 4.9.2-10 i386 GCC Quad-Precision Math Library
ii libssl-dev:i386 1.0.1k-3+deb8u1 i386 Secure Sockets Layer toolkit - development files
ii libssl1.0.0:i386 1.0.1k-3+deb8u1 i386 Secure Sockets Layer toolkit - shared libraries
ii libstdc++-4.8-dev:i386 4.8.4-1 i386 GNU Standard C++ Library v3 (development files)
ii libstdc++6:i386 4.9.2-10 i386 GNU Standard C++ Library v3
ii linux-libc-dev:i386 3.16.7-ckt11-1+deb8u4 i386 Linux support headers for userspace development
ii zlib1g:i386 1:1.2.8.dfsg-2+b1 i386 compression library - runtime
ii zlib1g-dev:i386 1:1.2.8.dfsg-2+b1 i386 compression library - development
不幸的是,安装库并不能解决这个问题。这是我从ld
(gcc链接器)中提取的最新输出:
这是以下链接器设置的结果:
-m32-L/lib/-lboost\u序列化-lboost\u线程-lboost\u日期\u时间-lboost\u信号-lboost\u iostreams-lboost\u系统-llog4cplus-lcrypto-lssl-lm-共享
<>这意味着所有的LIPBOOST文件都没有找到,也没有标准的C++库。那太糟糕了,我已经安装好了,我不知道我还应该做什么。。。有什么想法吗?您是否尝试过在只有i386的chroot环境中执行此操作?您收到的错误和警告的原因可能与您使用的是64位系统,并且实际上也有64位libs有关,对吗?我会尝试chroot或者改变你的环境,尤其是搜索路径,这样只考虑i386库。我听说chroot,但我希望multiarch已经被认为是功能性的。您知道我如何将路径限制为仅限于i386吗?也许如何检查每个i386库的安装位置?我认为您需要更改PATH变量。使用
echo$PATH
查看它,尝试删除64位路径,确保使用32位路径并执行另一个新导出。我认为multiarch确实适用于执行程序,但对于构建我不确定是否诚实。我总是有问题,很难用这样的配置来构建所有内容。我将chroot用于32位构建。我认为这是最简单的方法。
/usr/bin/ld: cannot find -lboost_serialization
/usr/bin/ld: cannot find -lboost_thread
/usr/bin/ld: cannot find -lboost_date_time
/usr/bin/ld: cannot find -lboost_signals
/usr/bin/ld: cannot find -lboost_iostreams
/usr/bin/ld: cannot find -lboost_system
/usr/bin/ld: Warning: size of symbol `_ZNSt6vectorISsSaISsEED1Ev' changed from 194 in /usr/lib/gcc/x86_64-linux-gnu/4.9/../../../liblog4cplus.so to 67 in ./source/R220/TTServer_cpp_d.o
/usr/bin/ld: Warning: size of symbol `_ZNSt6vectorISsSaISsEED2Ev' changed from 194 in /usr/lib/gcc/x86_64-linux-gnu/4.9/../../../liblog4cplus.so to 67 in ./source/R220/TTServer_cpp_d.o
/usr/bin/ld: Warning: size of symbol `_ZNSt12_Destroy_auxILb0EE9__destroyIPSsEEvT_S3_' changed from 170 in /usr/lib/gcc/x86_64-linux-gnu/4.9/../../../liblog4cplus.so to 55 in ./source/R220/TTServer_cpp_d.o
/usr/bin/ld: Warning: size of symbol `_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ERKS6_S8_' changed from 119 in /usr/lib/gcc/x86_64-linux-gnu/4.9/../../../liblog4cplus.so to 98 in ./source/loader/R220Loader_cpp_d.o
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.9/libstdc++.so when searching for -lstdc++
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.9/libstdc++.a when searching for -lstdc++
/usr/bin/ld: cannot find -lstdc++