我有一个应用程序需要在我的64位CentOS 7上编译为32位。我使用-m32
标志。我还需要来自c ++ 17的功能,所以我想安装gcc 8.x.我发现devtoolset 8
带有gcc 8.2.1,这对我有好处。
应用程序编译好,但问题是链接 - 它找不到一些32位库:
[100%] Linking CXX executable cherrySim_runner
/opt/rh/devtoolset-8/root/usr/libexec/gcc/x86_64-redhat-linux/8/ld: cannot find /usr/lib/libstdc++.so.6
/opt/rh/devtoolset-8/root/usr/libexec/gcc/x86_64-redhat-linux/8/ld: skipping incompatible /opt/rh/devtoolset-8/root/usr/lib/gcc/x86_64-redhat-linux/8/libstdc++_nonshared.a when searching for -lstdc++_nonshared
/opt/rh/devtoolset-8/root/usr/libexec/gcc/x86_64-redhat-linux/8/ld: cannot find -lstdc++_nonshared
/opt/rh/devtoolset-8/root/usr/libexec/gcc/x86_64-redhat-linux/8/ld: cannot find /lib/libgcc_s.so.1
我发现devtoolset准备了一些32位库,但这些链接指向不存在的路径,例如:/opt/rh/devtoolset-8/root/usr/lib/gcc/x86_64-redhat-linux/8/32/libstdc++_nonshared.a -> ../../../i686-redhat-linux/8/libstdc++_nonshared.a
。根本没有/ opt / rh / devtoolset-8 / root / usr / lib / gcc / i686-redhat-linux目录。我尝试了一些东西,但似乎没有任何工作。
我开始想知道我想做什么是可能的。
米哈尔
不幸的是,我发现在CentOS上没有包含gcc std库的32位版gcc> 8的软件包。
我需要这个用于我的码头图像,但由于无法做到这一点,我切换到ubuntu i386 16.04,它可以非常方便地安装gcc 8.2。