用android ndk里面的交叉编译器测试的问题,欢迎探讨

jwybobo2007 2013-02-27 09:46:07
test.cpp
#include <stdio.h>
#include <stdlib.h>

#include <cstddef>
#include <cassert>
#include <string>
#include <iostream>

int main(int argn, char **argv)
{
printf("test");
int a = 1;
assert(a != 0);
std::string str("test string");
std::cout << str << std::endl;

return 0;
}

我当前目录:
/cygdrive/f/public_lib/android-ndk-r8b/external/test

编译失败命令行:

"/cygdrive/f/public_lib/android-ndk-r8b/toolchains/arm-linux-androideabi-4.4.3/prebuilt/windows/bin/arm-linux-androideabi-g++" -I- -I/cygdrive/f/public_lib/android-ndk-r8b/platforms/android-9/arch-arm/usr/include -I/cygdrive/f/public_lib/android-ndk-r8b/sources/cxx-stl/gnu-libstdc++/4.4.3/include -I/cygdrive/f/public_lib/android-ndk-r8b/sources/cxx-stl/gnu-libstdc++/4.4.3/libs/armeabi/include -I/cygdrive/f/public_lib/android-ndk-r8b/sources/crystax/include -DNDEBUG -I"." -c -o "test" "test.cpp"

发生的错误是,test.cpp中所有的c/c++头文件找不到,但上述命令行中的目录已经包含所需头文件

转变下命令行:
取当前目录的相对路径

"/cygdrive/f/public_lib/android-ndk-r8b/toolchains/arm-linux-androideabi-4.4.3/prebuilt/windows/bin/arm-linux-androideabi-g++" -I../../platforms/android-9/arch-arm/usr/include -I../../sources/cxx-stl/gnu-libstdc++/4.4.3/include -I../../sources/cxx-stl/gnu-libstdc++/4.4.3/libs/armeabi/include -I../../sources/crystax/include -DNDEBUG -I"." -c -o "test" "test.cpp"

这个时候编译成功了,所需的头文件找到了。


以前用的arm或者x86的g++从来不需要指定标准c和c++头文件目录,所以没发现过上述问题,不知道g++是否有解释说明,欢迎探讨。

...全文
97 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
jwybobo2007 2013-02-27
  • 打赏
  • 举报
回复
这个纯属gnu工具集的问题,和android知识关联不大
jwybobo2007 2013-02-27
  • 打赏
  • 举报
回复
尽然要沉了,悲剧了

64,281

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧