【发布时间】:2012-10-02 00:12:39
【问题描述】:
我已下载 CPP 单元测试框架并尝试为 Android 进行编译。但是,面对配置问题。我尝试制作Standalone tool chain 并尝试配置,但总是失败
sh-4.1$ ./configure CXX=arm-linux-androideabi-g++ CC=arm-linux-androideabi-gcc CPP=arm-linux-androideabi-g++ CXXCPP=arm-linux-androideabi-g++
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make sets $(MAKE)... (cached) yes
checking for a BSD-compatible install... /usr/bin/install -c
checking for gcc... arm-linux-androideabi-gcc
checking for C compiler default output file name...
configure: error: C compiler cannot create executables
See `config.log' for more details.
sh-4.1$ arm-linux-androideabi-g++
arm-linux-androideabi-g++.exe: fatal error: no input files
compilation terminated.
sh-4.1$
我的构建环境是 NDKr8、Cygwin、Windows7-x64。
我尝试浏览了config.log,发现错误是
arm-linux-androideabi-gcc.exe: error: CreateProcess: No such file or directory
我尝试通过减少路径长度等来修复上述错误。但仍然无法解决。如果有人解决了类似问题,请告诉我。
只是添加来自链接http://curl.haxx.se/mail/lib-2012-08/0184.html的信息 但在没有 Cygwin 的情况下也面临同样的问题。
D:\Test>arm-linux-androideabi-gcc Main.c
arm-linux-androideabi-gcc: error: CreateProcess: No such file or directory
D:\Test>
即使在 Windows 提示符下,您也可以观察到,这也是同样的问题。
-- 编辑 1 ----- 我尝试使用以下行在 Ubuntu 12.04 操作系统上进行配置
./configure --host=arm CXX=arm-linux-androideabi-g++ CC=arm-linux-androideabi-gcc CPP=arm-linux-androideabi-g++ CXXCPP=arm-linux-androideabi-g++
但出现这些错误
checking how to run the C preprocessor... arm-linux-androideabi-g++
configure: error: in `/mnt/hgfs/VMShare/gperftools-2.0_Android/gperftools-2.0':
configure: error: C preprocessor "arm-linux-androideabi-g++" fails sanity check
See `config.log' for more details.
但大多数时候 ARM android Gcc 编译器都失败了。
configure:4216: arm-linux-androideabi-gcc -qversion >&5
arm-linux-androideabi-gcc: error: unrecognized option '-qversion'
arm-linux-androideabi-gcc: fatal error: no input files
【问题讨论】:
-
"有关详细信息,请参阅 'config.log'。"这就是您应该查看的日志文件。
-
@Mat:我只在看 config.log 文件。这是一个错字:)。谢谢,我现在在上面的 msg 中更改为 Config.log。
-
从技术上讲,./configure 脚本是正确的:您的交叉编译器无法创建可在 Windows(或桌面 Linux)上运行的可执行文件。有时,./configure 可以被配置 以了解您正在使用交叉编译器,并且不打算在执行构建的同一环境中启动二进制文件。但我不确定单元测试框架是否可以在这种情况下使用。为了分析特定情况,如果您发布您正在尝试构建的项目(URL、版本等会有所帮助),这可能会很有用。
标签: android configuration compilation android-ndk