我正在尝试使用 automake 配置脚本在 64 位 CentOS 系统上构建静态链接的 GNU x86 二进制文件。我能够毫无问题地构建静态 64 位二进制文件和动态 32 位二进制文件,但我似乎无法弄清楚如何构建静态 32 位二进制文件。
我尝试了以下配置命令:
./configure --build=i686-pc-linux-gnu CFLAGS='-static -m32' CXXFLAGS='-static -m32'
但我收到以下错误消息:
# ./configure --build=i686-pc-linux-gnu CFLAGS='-static -m32' CXXFLAGS='-static -m32'
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for g++... g++
checking whether the C++ compiler works... no
configure: error: in `/tmp/iperf-2.0.5':
configure: error: C++ compiler cannot create executables
See `config.log' for more details.
如果我尝试构建一个将 -m32 传递给 CFLAGS、CXXFLAGS 和 LDFLAGS 的 32 位二进制文件,它可以正常工作。
从 config.log 文件中,我看到:
configure:3104: $? = 1
configure:3124: checking whether the C++ compiler works
configure:3146: g++ -static -m32 conftest.cpp >&5
/usr/bin/ld: cannot find -lstdc++
collect2: ld returned 1 exit status
但我同时安装了 32 位和 64 位版本的 libstdc++。
有什么建议么?