我找不到任何关于如何使用 Red Hat Developer Toolset(在本例中是在 CentOS 7 上运行的版本 9.0)定位 32 位的文档。发行说明提到:
还支持 32 位二进制文件的生成和操作
它还在以下位置提供所需的 32 位库:
/opt/rh/devtoolset-9/root/usr/lib/gcc/x86_64-redhat-linux/9/32/
但是,构建失败。尝试构建最小int main() {}
程序的示例:
$ scl enable devtoolset-9 'g++ -m32 tst.cpp'
/opt/rh/devtoolset-9/root/usr/libexec/gcc/x86_64-redhat-linux/9/ld: skipping incompatible /opt/rh/devtoolset-9/root/usr/lib/gcc/x86_64-redhat-linux/9/libstdc++_nonshared.a when searching for -lstdc++_nonshared
/opt/rh/devtoolset-9/root/usr/libexec/gcc/x86_64-redhat-linux/9/ld: cannot find -lstdc++_nonshared
collect2: error: ld returned 1 exit status
它无法找到的库实际上存在:
/opt/rh/devtoolset-9/root/usr/lib/gcc/x86_64-redhat-linux/9/32/libstdc++_nonshared.a
没有多少-L
标志可以修复它(无论如何这将是错误的解决方案;链接器甚至不应该尝试在-m32
模式下加载 64 位库。)
我在这里想念什么?