Android ndk-r8“错误尝试执行’cc1plus’:execvp:没有这样的文件或目录”

我正在尝试使用Mountain Lion上的Android NDK按照本指南为Android构建一个库

http://masl.cis.gvsu.edu/2012/01/25/android-echoprint/

当编译库时,我运行:

cd  /ndk-build 

我收到以下错误:

 Compile++ thumb : echoprint-jni <= AndroidCodegen.cpp arm-linux-androideabi-g++: error trying to exec 'cc1plus': execvp: No such file or directory make: *** [/Users/wingdom/Desktop/obj/local/armeabi/objs/echoprint-jni/AndroidCodegen.o] Error 1 

我相信我已将我需要的所有内容添加到路径variables中:

 export PATH=$PATH:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:Developer/android-sdk/tools:/Developer/android-sdk/platform-tools:/Developer/android-ndk:/Developer/android-ndk/toolchains/arm-linux-androideabi-4.6/prebuilt/darwin-x86/bin 

为了让它编译,我还需要做些什么? 我目前正在使用r8b NDK,但是已经尝试过版本一直回到6。

编辑:

我试过这个解决方案: 构建android ndk示例项目时出错

加入

 export PATH=$PATH:/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5.2 

到我的路径给我这个错误:

 cc1plus: error: unrecognized command line option "-mbionic" cc1plus: error: unrecognized command line option "-mthumb" cc1plus: error: unrecognized command line option "-mfpu=vfp" /Users/wingdom/Desktop/jni/AndroidCodegen.cpp:1: error: bad value (armv5te) for -march= switch /Users/wingdom/Desktop/jni/AndroidCodegen.cpp:1: error: bad value (xscale) for -mtune= switch make: *** [/Users/wingdom/Desktop/obj/local/armeabi/objs/echoprint-jni/AndroidCodegen.o] Error 1 

但补充一点

 export CROSS_COMPILER=$PATH:/Developer/android-ndk/toolchains/arm-linux-androideabi-4.6/prebuilt/darwin-x86/bin 

没有帮助,就像它在上面的链接中所做的那样。

我遇到了同样的错误。
我甚至无法执行’gcc,g ++’命令。 所以我搜索了很多东西以寻找解决方案,但没有任何帮助。

然后,我发现ndk中的某些文件名不正确,在某些文件名上有尾部_ ..(在我的例子中,在toolchains / arm-linux-androideabi-4.6 / prebuilt / darwin-x86 / arm-linux-androideabi / bin文件夹,有gcc_g++_c++_而不是gccg++c++ 。)
我使用unarchiver来提取NDK存档,所以我认为unarchiving程序有问题。

所以我重新下载了NDK并检查了MD5校验和,然后使用Mac的默认存档实用程序解压缩了存档。

现在,问题已经解决了。

听起来你的NDK下载/解压不好。 它正在寻找的$NDK_HOME/toolchains/arm-linux-androideabi-4.4.3/prebuilt/darwin-x86/libexec/gcc/arm-linux-androideabi/4.4.3/二进制文件应该在$NDK_HOME/toolchains/arm-linux-androideabi-4.4.3/prebuilt/darwin-x86/libexec/gcc/arm-linux-androideabi/4.4.3/ 。 如果不存在,请尝试重新下载SDK和/或再次解压缩。

如果它存在,请确保构建传递V=1ndk-build ,并查看是否有任何奇怪的-B选项传递给编译器。 -B选项告诉gcc在哪里find它的“子程序”(其中cc1plus是一个)。 非常确定r8的命令行中不应该有任何内容,所以如果有的话,某些地方会传递坏标志。 例如,在我的系统上,C ++ NDK命令行最终看起来像这样:

  /opt/android-ndk/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-g++ -MMD -MP -MF ./obj/local/armeabi-v7a/objs/sometarget/SomeCppFile.od -fpic -ffunction-sections -funwind-tables -fstack-protector -D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__ -Wno-psabi -march=armv7-a -mfloat-abi=softfp -mfpu=vfp -fno-exceptions -fno-rtti -mthumb -Os -fomit-frame-pointer -fno-strict-aliasing -finline-limit=64 -I/opt/android-ndk/sources/cxx-stl/stlport/stlport -I/opt/android-ndk/sources/cxx-stl//gabi++/include -DANDROID -Wall -Wa,--noexecstack -frtti -O2 -DNDEBUG -g -I/opt/android-ndk/platforms/android-8/arch-arm/usr/include -c jni/SomeCppFile.cpp -o ./obj/local/armeabi-v7a/objs/sometarget/SomeCppFile.o 

也许你需要安装g ++:

$sudo apt-get install g++

我花了大约一天时间find这个的根本原因

 arm-linux-androideabi-gcc: error trying to exec 'cc1': execvp: No such file... 

和其他问题。

问题是我用7z解压缩NDK和SDK,删除了所有二进制文件的可执行权限,Eclipse无法启动cc1。 一旦我使用tar解压缩SDK和NDK的tar文件,一切都开始运行良好。