Опитвам се да създам статично свързан GNU x86 двоичен файл на 64-битова CentOS система, използвайки скрипта за конфигуриране на automake. Мога да създам статичен 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.
Ако се опитам да създам само 32-битов двоичен файл, предаващ -m32 на CFLAGS, CXXFLAGS и LDFLAGS, работи добре.
От файла 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++.
Някакви предположения?