GumstixOveroのROSフレームワークで使用するためにBoostをクロスコンパイルしようとしています。私はここに投稿された指示に従いました(必要に応じてスクリプトを変更します)が、bjamがboostを正しくコンパイルしないという問題に遭遇しました。
私はbjamを次のように呼びます。
# 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
user-configをチェックして、すべてがコーシャであることと、GPP_PATHが正しいことを確認しました。ただし、スクリプトを実行すると、次のようなコンパイルエラーが発生します。
パッケージリストの読み取り...完了依存関係ツリーの構築状態情報の読み取り...完了bjamはすでに最新バージョンです。0がアップグレードされ、0が新しくインストールされ、0が削除され、5がアップグレードされていません。...忍耐......14370ターゲットが見つかりました......14ターゲットを更新しています...gcc.compile.c++ bin.v2 / libs / date_time / build / gcc-4.3.3 / release / threading- multi / gregorian / greg_month.o g ++:'cc1plus'を実行しようとしてエラーが発生しました:execvp:そのようなファイルまたはディレクトリはありません
"/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_month.o" "libs / date_time / src / gregorian / greg_month.cpp"
...失敗したgcc.compile.c++bin.v2 / libs / date_time / build / gcc-4.3.3 / release / threading-multi / gregorian / greg_month.o ... gcc.compile.c ++ bin.v2 / libs / date_time / build / gcc-4.3.3 / release / threading-multi / gregorian / greg_weekday.o g ++:'cc1plus'を実行しようとしたときにエラーが発生しました:execvp:そのようなファイルまたはディレクトリはありません
"/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"
...失敗したgcc.compile.c++bin.v2 / libs / date_time / build / gcc-4.3.3 / release / threading-multi / gregorian / greg_weekday.o ... gcc.compile.c ++ bin.v2 / libs / date_time / build / gcc-4.3.3 / release / threading-multi / gregorian / date_generators.o g ++:'cc1plus'を実行しようとしてエラーが発生しました:execvp:そのようなファイルまたはディレクトリはありません
等...
参考までに、このチュートリアルを使用して支援しています。http://www.ros.org/wiki/gumros