Я пытаюсь перекрестно скомпилировать библиотеку Boost (Thread, System) для архитектуры PowerPC. Я выполнил следующие шаги, но столкнулся с проблемами.
Я запускаю сценарий оболочки, который настраивает мою цепочку инструментов. Компилятор ppc_4xx-g ++ виден в оболочке.
Последующие шаги:
- Добавьте строку «using gcc: power: ppc_4xx-g ++;» в файл user-config.jam
- Запустите ./bootstrap.sh --prefix = BoostPowerPC в корневом каталоге.
- Запустите ./b2 install --build-dir = BoostPowerPC toolset = gcc-power --with-thread --with-system stage
Результат: все каталоги создаются, но компиляция не выполняется. Я не могу прикрепить журнал ошибок (пришлите мне свою электронную почту, чтобы я мог отправить вам журнал ошибок, если вам нужно). Ниже приведен снимок журнала ошибок.
Component configuration:
- atomic : not building
- chrono : not building
- context : not building
- date_time : not building
- exception : not building
- filesystem : not building
- graph : not building
- graph_parallel : not building
- iostreams : not building
- locale : not building
- math : not building
- mpi : not building
- program_options : not building
- python : not building
- random : not building
- regex : not building
- serialization : not building
- signals : not building
- system : building
- test : not building
- thread : building
- timer : not building
- wave : not building
...patience...
...found 20376 targets...
...updating 10110 targets...
common.mkdir BoostPowerPC
common.mkdir BoostPowerPC/lib
common.mkdir BoostPowerPC/boost
common.mkdir BoostPowerPC/boost/bin.v2
common.mkdir BoostPowerPC/boost/bin.v2/libs
common.mkdir BoostPowerPC/boost/bin.v2/libs/system
common.mkdir BoostPowerPC/boost/bin.v2/libs/system/build
common.mkdir BoostPowerPC/boost/bin.v2/libs/system/build/gcc-power
common.mkdir BoostPowerPC/boost/bin.v2/libs/system/build/gcc-power/release
common.mkdir BoostPowerPC/boost/bin.v2/libs/system/build/gcc-power/release/threading-multi
gcc.compile.c++ BoostPowerPC/boost/bin.v2/libs/system/build/gcc-power/release/threading-multi/error_code.o
In file included from ./boost/config/select_stdlib_config.hpp:18,
from ./boost/config.hpp:40,
from ./boost/system/config.hpp:13,
from libs/system/src/error_code.cpp:18:
/opt/ELDK/4.2/ppc_4xx/usr/include/c++/4.2.2/cstddef:50:28: error: bits/c++config.h: No such file or directory
In file included from /opt/ELDK/4.2/ppc_4xx/usr/include/c++/4.2.2/ios:43,
from /opt/ELDK/4.2/ppc_4xx/usr/include/c++/4.2.2/ostream:45,
from /opt/ELDK/4.2/ppc_4xx/usr/include/c++/4.2.2/iterator:70,
from ./boost/iterator.hpp:17,
from ./boost/operators.hpp:86,
from ./boost/system/error_code.hpp:17,
from libs/system/src/error_code.cpp:19:
.
.
.
Он жалуется, что не найден файл c ++ config.h. Но файл находится в каталоге /opt/ELDK/4.2/usr/include/c++/4.2.2/powerpc-linux/bits.
Затем я попытался использовать тег «include» в команде b2. Но затем я получаю сообщение об ошибке, что файл cstddef не найден, который находится в каталоге /opt/ELDK/4.2/usr/include/c++/4.2.2. Я думаю, что переписал путь включения.
Как вы думаете, в чем проблема? Почему мой компилятор не может найти файл, даже если он есть? Какие-либо предложения ?
Обновлять:
Я использовал параметры -d + 2 и -q, и результат ниже.
"ppc_4xx-g++" -ftemplate-depth-128 -O3 -finline-functions -Wno-inline -Wall -pedantic -pthread -fPIC -DBOOST_ALL_NO_LIB=1 -DBOOST_SYSTEM_DYN_LINK=1 -DNDEBUG -I"." -I"/opt/ELDK/4.2/ppc_4xx/usr/include" -c -o "BoostPowerPC/boost/bin.v2/libs/system/build/gcc-power/release/threading-multi/error_code.o" "libs/system/src/error_code.cpp"
Журнал компиляции:
In file included from ./boost/config/select_stdlib_config.hpp:18,
from ./boost/config.hpp:40,
from ./boost/system/config.hpp:13,
from libs/system/src/error_code.cpp:18:
/opt/ELDK/4.2/ppc_4xx/usr/include/c++/4.2.2/cstddef:50:28: error: bits/c++config.h: No such file or directory
Как мы видим, верхний каталог, в котором находится требуемый файл, включен и виден компилятору. Я даже пробовал использовать команду -L и указывать корневой каталог. Это все равно не помогло.
Я проверил варианты компиляции ppc_4xx-g ++ и меня заинтересовали 2 варианта
--sysroot =: это корневой каталог всех включений и библиотек, используемых компилятором.
-B: Используя это, мы можем добавить путь поиска для компилятора.
Я попробовал оба, и это не помогло. Какие-либо предложения ?