2011-10-04 84 views
3

我刚刚添加了一些新的语句到我的'android.mk'项目文件来编译新的源代码文件,我有错误编译完所有* .cpp文件后:arm-linux-androideabi-g ++。exe:CreateProcess:没有这样的文件或目录错误

arm-linux-androideabi-g++.exe: CreateProcess: No such file or directory 
make: *** [/cygdrive/...] Error 1 

其他人有过类似的错误吗?我无法弄清楚为什么会发生这种情况,我没有修改路径,只是添加了源代码文件。

在此先感谢。

回答

9

这可能是命令行是cygwin的时间太长(在这里看到:How to build OpenSSL on Android/Linux ?

尝试移动一切地方用更短的路径。在向android.mk文件添加一些文件后,我刚刚发生了错误,并且暂时将android项目移动到/ cygdrive/c/projects等允许它构建的位置。我只是在那里建造它,然后把所有东西都搬回去。

+2

omg不能相信我已经挣扎了这么久的问题是由于路径太长..谢谢! – Bruce

1

此问题可能是由构建PC上不足的内存引起的。
我最近在虚拟Windows XP SP3 32位上运行相同的问题 - 在链接阶段,系统尝试消耗高达2.6 GB的内存,而限制设置为2.2 GB,并且没有足够的在磁盘上的可用空间分配所需的交换文件...

+0

谢谢。当时就遇到了这个问题,并关闭了一些后台应用程序允许它编译。 – Allan

-2

我有像你一样的错误。使用新系统(Windows上的虚拟机等),再试一次。 这可能是由其他软件冲突引起的,可能是您的操作系统上的工具太多。

3

传递给CreateProcess()的命令行字符串的最大长度为32,768个字符。长度包括所有参数。
顺便提一句,Android NDK构建系统可能会生成长度超过32,768个字符的命令行,因为源文件的完整路径太长,源文件数量过大,而且目标文件路径太长而且很多。链接时,所有完整路径都会添加到命令行中。
我解决了这个问题,将项目文件夹放在Windows文件系统的根目录下,并将其重命名为一个字母,如“C:\ E”,以便所有路径比以前缩短。

+0

这是正确的答案。 – dns

+0

NDK开发者的重要答案。 –

相关问题