如何使用 android NDK 构建 avr-gcc
How to build avr-gcc using android NDK
我想在 android 平板电脑上构建一个 IDE 可以像 arduino uno 一样为 AVR mcus 编译 c++。所以我需要在 android 上构建一个 运行 并且可以交叉编译 AVR 可执行文件的 gcc。任何人都可以给我一些关于如何去做的想法吗?非常感谢。
更新:
我使用来自 CC Tools 的脚本和 Linux 上的 android NDK r9d 源代码编译工具链并得到以下错误:
libtool: 编译: /home/jacx/cctools/cctools-read-only/cctools-repo/tmp/arm-repo/build/host-gcc/./gcc/xgcc -shared-libgcc -B/home/jacx/cctools/cctools-read-only/cctools-repo/tmp/arm-repo/build/host-gcc/./gcc -nostdinc++ -L/home/jacx/cctools/cctools-read-only/cctools-repo/tmp/arm-repo/build/host-gcc/arm-linux-androideabi/libstdc++-v3/src-L/home/jacx/cctools/cctools-read-only/cctools-repo/tmp/arm-repo/build/host-gcc/arm-linux-androideabi/libstdc++-v3/src/。 libs -B/home/jacx/cctools/cctools-read-only/cctools-repo/tmp/arm-repo/cctools-host/arm-linux-androideabi/bin/ -B/home/jacx/cctools/cctools-read-only/cctools-repo/tmp/arm-repo/cctools-host/arm-linux-androideabi/lib/ -isystem /home/jacx/cctools/cctools-read-only/cctools-repo/tmp/arm-repo/cctools-host/arm-linux-androideabi/include -isystem /home/jacx/cctools/cctools-read-only/cctools-repo/tmp/arm-repo/cctools-host/arm-linux-androideabi/sys-include -I/home/jacx/cctools/cctools-read-only/cctools-repo/tmp/arm-repo/src/gcc-4.8/libstdc++-v3/../libgcc -I/home/jacx/cctools/cctools-read-only/cctools-repo/tmp/arm-repo/build/host-gcc/arm-linux-androideabi/libstdc++-v3/include/arm-linux-androideabi-I/home/jacx/cctools/cctools-read-only/cctools-repo/tmp/arm-repo/build/host-gcc/arm-linux-androideabi/libstdc++ -v3/include -I/home/jacx/cctools/cctools-read-only/cctools-repo/tmp/arm-repo/src/gcc-4.8/libstdc++-v3/libsupc++ -Wall -Wextra -Wwrite-strings -Wcast-qual -Wabi -fdiagnostics-show-location=once -ffunction-sections -fdata-sections -frandom-seed=eh_arm.lo -g -Os -c /home/jacx/cctools/cctools-read-only/cctools-repo/tmp/arm-repo/src/gcc-4.8/libstdc++-v3/libsupc++/eh_arm.cc -o eh_arm.o
/home/jacx/cctools/cctools-read-only/cctools-repo/tmp/arm-repo/src/gcc-4.8/libstdc++-v3/libsupc++/eh_arm.cc: 在函数中 '__cxxabiv1::__cxa_type_match_result __cxa_type_match(_Unwind_Control_Block *, const std::type_info*, bool, void**)':
/home/jacx/cctools/cctools-read-only/cctools-repo/tmp/arm-repo/src/gcc-4.8/libstdc++-v3/libsupc++/eh_arm.cc:67:46: 错误:不能将 typeid 与 -fno-rtti[= 一起使用27=]
throw_type = &typeid(abi::__forced_unwind);
^
/home/jacx/cctools/cctools-read-only/cctools-repo/tmp/arm-repo/src/gcc-4.8/libstdc++-v3/libsupc++/eh_arm.cc:69:50: 错误:不能将 typeid 与 -fno-rtti[= 一起使用27=]
throw_type = &typeid(abi::__foreign_exception);
有人知道如何解决这个问题吗?
您可能想查看 CCTools,它提供了一个 AVR 交叉编译器,而不是推出您自己的交叉编译器。干杯。
我想在 android 平板电脑上构建一个 IDE 可以像 arduino uno 一样为 AVR mcus 编译 c++。所以我需要在 android 上构建一个 运行 并且可以交叉编译 AVR 可执行文件的 gcc。任何人都可以给我一些关于如何去做的想法吗?非常感谢。
更新:
我使用来自 CC Tools 的脚本和 Linux 上的 android NDK r9d 源代码编译工具链并得到以下错误:
libtool: 编译: /home/jacx/cctools/cctools-read-only/cctools-repo/tmp/arm-repo/build/host-gcc/./gcc/xgcc -shared-libgcc -B/home/jacx/cctools/cctools-read-only/cctools-repo/tmp/arm-repo/build/host-gcc/./gcc -nostdinc++ -L/home/jacx/cctools/cctools-read-only/cctools-repo/tmp/arm-repo/build/host-gcc/arm-linux-androideabi/libstdc++-v3/src-L/home/jacx/cctools/cctools-read-only/cctools-repo/tmp/arm-repo/build/host-gcc/arm-linux-androideabi/libstdc++-v3/src/。 libs -B/home/jacx/cctools/cctools-read-only/cctools-repo/tmp/arm-repo/cctools-host/arm-linux-androideabi/bin/ -B/home/jacx/cctools/cctools-read-only/cctools-repo/tmp/arm-repo/cctools-host/arm-linux-androideabi/lib/ -isystem /home/jacx/cctools/cctools-read-only/cctools-repo/tmp/arm-repo/cctools-host/arm-linux-androideabi/include -isystem /home/jacx/cctools/cctools-read-only/cctools-repo/tmp/arm-repo/cctools-host/arm-linux-androideabi/sys-include -I/home/jacx/cctools/cctools-read-only/cctools-repo/tmp/arm-repo/src/gcc-4.8/libstdc++-v3/../libgcc -I/home/jacx/cctools/cctools-read-only/cctools-repo/tmp/arm-repo/build/host-gcc/arm-linux-androideabi/libstdc++-v3/include/arm-linux-androideabi-I/home/jacx/cctools/cctools-read-only/cctools-repo/tmp/arm-repo/build/host-gcc/arm-linux-androideabi/libstdc++ -v3/include -I/home/jacx/cctools/cctools-read-only/cctools-repo/tmp/arm-repo/src/gcc-4.8/libstdc++-v3/libsupc++ -Wall -Wextra -Wwrite-strings -Wcast-qual -Wabi -fdiagnostics-show-location=once -ffunction-sections -fdata-sections -frandom-seed=eh_arm.lo -g -Os -c /home/jacx/cctools/cctools-read-only/cctools-repo/tmp/arm-repo/src/gcc-4.8/libstdc++-v3/libsupc++/eh_arm.cc -o eh_arm.o /home/jacx/cctools/cctools-read-only/cctools-repo/tmp/arm-repo/src/gcc-4.8/libstdc++-v3/libsupc++/eh_arm.cc: 在函数中 '__cxxabiv1::__cxa_type_match_result __cxa_type_match(_Unwind_Control_Block *, const std::type_info*, bool, void**)':
/home/jacx/cctools/cctools-read-only/cctools-repo/tmp/arm-repo/src/gcc-4.8/libstdc++-v3/libsupc++/eh_arm.cc:67:46: 错误:不能将 typeid 与 -fno-rtti[= 一起使用27=] throw_type = &typeid(abi::__forced_unwind); ^
/home/jacx/cctools/cctools-read-only/cctools-repo/tmp/arm-repo/src/gcc-4.8/libstdc++-v3/libsupc++/eh_arm.cc:69:50: 错误:不能将 typeid 与 -fno-rtti[= 一起使用27=] throw_type = &typeid(abi::__foreign_exception);
有人知道如何解决这个问题吗?
您可能想查看 CCTools,它提供了一个 AVR 交叉编译器,而不是推出您自己的交叉编译器。干杯。