我正在尝试交叉编译 boost 以与 Gumstix Overo 上的 ROS 框架一起使用。我一直按照此处发布的说明进行操作(在需要时修改脚本),但是我遇到了 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
我已经检查了用户配置以确保一切都是洁净的,并确保 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:没有这样的文件或目录
ETC...
作为参考,我正在使用本教程来帮助我。http://www.ros.org/wiki/gumros