Jim*_*Jim 5 c++ linux arm cross-platform crosstool-ng
我正在尝试让 crosstool-ng 与 C 和 C++ 一起工作。尽管我在使用 menuconfig 时选择了 C++,但它似乎并没有被构建。gcc 编译器按预期工作,但不是 g++
我不确定我做错了什么,所以任何帮助将不胜感激。
我按照此处找到的步骤操作: 使用 Crosstool-NG 构建嵌入式 ARM 系统
$ arm-unknown-linux-gnueabi-cpp main.cpp -o test
arm-unknown-linux-gnueabi-cpp: main.cpp: C++ compiler not installed on this system
Run Code Online (Sandbox Code Playgroud)
注意:arm-unknown-linux-gnueabi-g++
bin 目录中没有找到 on。我试过跨工具版本 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)
Run Code Online (Sandbox Code Playgroud)
#include<iostream>
using namespace std;
int main(){
cout<<"Hello World"<<endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
在我的build.log
文件中,我看到 C++ 选项已打开
[DEBUG] CT_CC_SUPPORT_CXX=y
Run Code Online (Sandbox Code Playgroud)
我也在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
Run Code Online (Sandbox Code Playgroud)
来自,http://briolidz.wordpress.com/2012/02/07/building-embedded-arm-systems-with-crosstool-ng/
\n\n\n通过运行 menucon\xef\xac\x81g 界面重新\xef\xac\x81ne你的con\xef\xac\x81guration:
\n$ ./ct-ng 菜单配置
\n
在此步骤中,导航至C 编译器菜单。然后您可以选择C++或取消选择Java、Fortran等。由于crosstool-ng只是一堆脚本和补丁文件,因此开发构建很少会出现问题。您始终可以从hg存储库中提取。
\n\n\nhg clone http://crosstool-ng.org/hg/crosstool-ng \n
\n
cd crosstool-ng\n
./bootstrap\n
make\n
sudo make install
这将有最新的修复。我已经使用此方法多次构建了支持 C++ 的 Arm 交叉编译器 [包括来自 x86_64 主机的 Mingw 和 i386 的加拿大交叉编译器]。
\n编辑:我看到wordpress链接建议本地安装ct-ng。上面的命令执行完整安装,将内容放入/usr/local中。另外,OP 似乎确实尝试设置 menuconfig\ 的 C++ 选项。尝试更改sjlj值,使用最新版本的ct-ng并安装它。这为我在 Ubuntu 上生成了一个 ARM Linux C++ 交叉编译器。build.log输出有助于确定ct-ng是否认为某些配置是不可能的。
\n最后,邮件列表crossgcc@sourceware.org不需要订阅。http://sourceware.org/ml/crossgcc/上的档案可能会有所帮助。如果您仍然遇到问题,我相信邮件列表中的某人能够为您提供帮助。
\n编辑:安装最新的ct-ng尝试,
\n\n\n
$ ct-ng arm-cortex_a15-linux-gnueabi #备用arm-yem-linux-gnueabi
\n$ ct-ng menuconfig # 调整你的处理器、gcc 版本等
\n$ ct-ng build # 去喝杯咖啡(或者做其他事情)。
抱歉,您的主机编译器是用 Linaro 制作的。我对你的编辑读得太多了。
\n 归档时间: |
|
查看次数: |
9417 次 |
最近记录: |