Cross Compiling Boost для использования на Gumstix Overo с GumROS - PullRequest
1 голос
/ 19 марта 2010

Я пытаюсь сделать кросс-компиляцию boost для использования с ROS-фреймворком на Gumstix Overo. Я следовал приведенным здесь инструкциям (модифицируя скрипт, когда это необходимо), однако я столкнулся с проблемой, когда bjam не будет правильно компилировать boost.

Я называю Бджам следующим образом:

# boost
if [ ! -f /opt/gumros/lib/libboost_date_time-gcc41-mt-1_38.so ] ; then
  if [ ! -f boost_1_38_0.tar.gz ] ; then
    wget --tries=10 http://heanet.dl.sourceforge.net/sourceforge/boost/boost_1_38_0.tar.gz

  fi
#  tar xzf boost_1_38_0.tar.gz
  cd boost_1_38_0
  GPP_PATH=${OVEROTOP}/tmp/cross/armv7a/arm-angstrom-linux-gnueabi/bin/g++
  GPP_VER=`${GPP_PATH} -v 2>&1 | tail -1 | awk '{print $3}'`
  echo "using gcc : ${GPP_VER} : ${GPP_PATH}  ; " > tools/build/v2/user-config.jam
  sudo apt-get install bjam
  set +o errexit
  sudo bjam --toolset=gcc-${GPP_VER} --prefix=/opt/gumros --with-date_time install                  
  set -o errexit
  cd ..
else
  echo "boost appears to be already installed; skipping."
fi
if [ ! -f /opt/gumros/lib/libboost_date_time-gcc41-mt-1_38.so ] ; then
  echo "Failed to compile libboost_date_time";
  exit;
fi

Я проверил пользовательский конфиг, чтобы убедиться, что все было кошерно, а также для проверки правильности GPP_PATH. Однако, когда я запускаю скрипт, я сталкиваюсь с ошибками компиляции, такими как:

Чтение списков пакетов ... Готово дерево зависимостей Состояние чтения информация ... Готово, бям уже новейшая версия. 0 обновлено, 0 недавно установлен, 0 для удаления и 5 нет модернизированы. ... терпение ... ... найдено 14370 целей ... ... обновление 14 цели ... gcc.compile.c ++ bin.v2 / ЛИЭС / date_time / сборки / GCC-4.3.3 / выпуск / потоковая мультимиллионера / григорианский / greg_month.o g ++: ошибка при попытке выполнить cc1plus: execvp: нет такого файла или каталога

"/home/andrew/overo-oe/tmp/cross/armv7a/arm-angstrom-linux-gnueabi/bin/g++"

-ftemplate-deep-128 -O3 -finline-functions -Wno-inline -Wall -pthread -fPIC -DBOOST_ALL_DYN_LINK = 1 -DBOOST_ALL_NO_LIB = 1 -DDATE_TIME_INLINE -DNDEBUG -I "." -c -o "bin.v2 / libs / date_time / build / gcc-4.3.3 / release / threading-multi / gregorian / greg_month.o" "ЛИЭС / date_time / SRC / григорианский / greg_month.cpp"

... не удалось gcc.compile.c ++ bin.v2 / ЛИЭС / date_time / сборки / GCC-4.3.3 / выпуск / потоковая мультимиллионера / григорианский / greg_month.o ... gcc.compile.c ++ bin.v2 / ЛИЭС / date_time / сборки / GCC-4.3.3 / выпуск / потоковая мультимиллионера / григорианский / greg_weekday.o g ++: ошибка при попытке выполнить cc1plus: execvp: нет такого файла или каталога

"/home/andrew/overo-oe/tmp/cross/armv7a/arm-angstrom-linux-gnueabi/bin/g++"

-ftemplate-deep-128 -O3 -finline-functions -Wno-inline -Wall -pthread -fPIC -DBOOST_ALL_DYN_LINK = 1 -DBOOST_ALL_NO_LIB = 1 -DDATE_TIME_INLINE -DNDEBUG -I "." -c -o "bin.v2 / libs / date_time / build / gcc-4.3.3 / release / threading-multi / gregorian / greg_weekday.o" "ЛИЭС / date_time / SRC / григорианский / greg_weekday.cpp"

... не удалось gcc.compile.c ++ bin.v2 / ЛИЭС / date_time / сборки / GCC-4.3.3 / выпуск / потоковая мультимиллионера / григорианский / greg_weekday.o ... gcc.compile.c ++ bin.v2 / ЛИЭС / date_time / сборки / GCC-4.3.3 / выпуск / потоковая мультимиллионера / григорианский / date_generators.o g ++: ошибка при попытке выполнить cc1plus: execvp: нет такого файла или каталога

Etc ...

Для справки, я использую это руководство, чтобы выручить меня. http://www.ros.org/wiki/gumros

1 Ответ

1 голос
/ 25 марта 2010

Работает ли

"/home/andrew/overo-oe/tmp/cross/armv7a/arm-angstrom-linux-gnueabi/bin/g++"
-ftemplate-depth-128 -O3 -finline-functions -Wno-inline -Wall -pthread -fPIC -DBOOST_ALL_DYN_LINK=1 -DBOOST_ALL_NO_LIB=1 -DDATE_TIME_INLINE -DNDEBUG -I"." -c -o "bin.v2/libs/date_time/build/gcc-4.3.3/release/threading-multi/gregorian/greg_weekday.o"
"libs/date_time/src/gregorian/greg_weekday.cpp"

от руки выдают такую ​​же ошибку? Если это так, похоже, ваш компилятор установлен неправильно.

...