【发布时间】:2012-10-18 15:16:15
【问题描述】:
我正在尝试让 crosstool-ng 同时使用 C 和 C++。即使我在使用 menuconfig 时选择了 C++,但它似乎并没有构建。 gcc 编译器按预期工作,但 g++ 没有
我不确定我做错了什么,因此我们将不胜感激。
我按照此处找到的步骤操作: Building embedded ARM systems with Crosstool-NG
$ arm-unknown-linux-gnueabi-cpp main.cpp -o test
arm-unknown-linux-gnueabi-cpp: main.cpp: C++ compiler not installed on this system
注意:在 bin 目录中找不到 arm-unknown-linux-gnueabi-g++。
我试过跨工具版本 1.16.0 和 1.15.3
arm-unknown-linux-gnueabi-cpp -v
Using built-in specs.
Target: arm-unknown-linux-gnueabi
Configured with: /opt/crossArm/.build/src/gcc-4.3.2/configure --build=i686-build_pc-linux-gnu --host=i686-build_pc-linux-gnu --target=arm-unknown-linux-gnueabi --prefix=/opt/crossArm/.build/arm-unknown-linux-gnueabi/buildtools --with-local-prefix=/home/jgarvin/x-tools/arm-unknown-linux-gnueabi/arm-unknown-linux-gnueabi/sysroot --disable-libmudflap --with-sysroot=/home/jgarvin/x-tools/arm-unknown-linux-gnueabi/arm-unknown-linux-gnueabi/sysroot --enable-shared --with-pkgversion='crosstool-NG 1.16.0' --with-float=soft --enable-__cxa_atexit --with-gmp=/opt/crossArm/.build/arm-unknown-linux-gnueabi/buildtools --with-mpfr=/opt/crossArm/.build/arm-unknown-linux-gnueabi/buildtools --enable-target-optspace --disable-libgomp --disable-libmudflap --disable-nls --disable-multilib --enable-languages=c
Thread model: posix
gcc version 4.3.2 (crosstool-NG 1.16.0)
代码
#include<iostream>
using namespace std;
int main(){
cout<<"Hello World"<<endl;
return 0;
}
在我的 build.log 文件中,我看到 C++ 选项已打开
[DEBUG] CT_CC_SUPPORT_CXX=y
我在config.log也看到了:
configure:3030: $? = 0
configure:3019: gcc -v >&5
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/i686-linux-gnu/4.6/lto-wrapper
Target: i686-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 4.6.3-1ubuntu5' --with-bugurl=file:///usr/share/doc/gcc-4.6/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.6 --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.6 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --enable-plugin --enable-objc-gc --enable-targets=all --disable-werror --with-arch-32=i686 --with-tune=generic --enable-checking=release --build=i686-linux-gnu --host=i686-linux-gnu --target=i686-linux-gnu
【问题讨论】:
-
--enable-languages=c是重点,试着把它放到 c,c++ 中,它会(尝试)构建 c++ 编译器。 -
是的,我看到“..尝试将其转换为 c,c++..”我的问题如何。我在 menuconfig 中选择了 C++。
-
我不知道 crosstool-ng 是如何工作的,但您可以从调用此配置行的位置开始跟踪脚本。或者您可以尝试通过它查找“--enable-languages”
标签: c++ linux arm cross-platform crosstool-ng