Boost построен проект на i386 не удается связать

Я использую проект под названием «GenericMod», который внутренне использует библиотеку надстройки 1.58.0.

Ранее Boost 1.58 был скомпилирован в Red Hat Enterprise Linux Server версии 5.8 (Tikanga).

чей вывод gcc -v был следующим

Using built-in specs.
Target: x86_64-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-libgcj-multifile --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --disable-plugin --with-java-home=/usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/jre --with-cpu=generic --host=x86_64-redhat-linux
Thread model: posix
gcc version 4.1.2 20080704 (Red Hat 4.1.2-55)

Он был скомпилирован с помощью следующей команды

./b2 install -a --includedir=testbuild/include --libdir=testbuild/lib --layout=system variant=release target-os=linux link=static runtime-link=static address-model=32 cxxflags=-fPIC

Теперь, когда проект «GenericMod» был собран, на той же машине, сборка была успешной, и ошибки не было.

Но недавно среда сборки изменилась. Сейчас проект строится на новом компьютере, который является Red Hat Enterprise Linux Server версии 5.9 (Tikanga).

и его вывод gcc -v

Using built-in specs.
Target: i386-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-libgcj-multifile --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --disable-plugin --with-java-home=/usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/jre --with-cpu=generic --host=i386-redhat-linux
Thread model: posix
gcc version 4.1.2 20080704 (Red Hat 4.1.2-54)

Когда проект был встроен в эту машину сейчас, я получал ошибки компоновщика (вероятно, поскольку библиотеки boost были построены в другой среде).

Таким образом, я снова собрал Boost 1.58.0 на этой машине с той же командой сборки.

./b2 install -a --includedir=testbuild/include --libdir=testbuild/lib --layout=system variant=release target-os=linux link=static runtime-link=static address-model=32 cxxflags=-fPIC

Теперь, когда проект построен на этой машине, я понимаю, что не должно быть никаких ошибок, и сборка должна проходить через фазу соединения.

Но ошибка компоновщика все еще происходит.

libboost_thread.a(thread.o): In function `boost::thread::physical_concurrency()':
thread.cpp:(.text+0x2084): undefined reference to `std::ctype<char>::_M_widen_init() const'

Может кто-нибудь объяснить, почему это происходит? На прошлой неделе я ломал голову за это и не мог получить достаточно объяснений в других местах.

Должен ли я включить флаг, чтобы указать сборку для i386?

заранее спасибо

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]