为什么arm-linux-androideabi-gcc会给出iostream错误

时间:2012-07-31 19:38:30

标签: android gcc linker arm

我的计算机中安装了arm-linux-androideabi-gcc,但是当我尝试编译一个简单的hellow世界时,它会出错(我选择不使用ndk-build)。我只想从命令行编译......

#include <iostream>

using namespace std;

int main (){
    return 0;
}

我收到了这个错误:

  

错误:iostream:没有这样的文件或目录

我在~/android-ndk-r8b/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin中有arm-linux-androideabi-gcc。

我尝试过包含-I ~/android-ndk-r7b/platforms/android-9/arch-arm/usr

我也尝试过包括-lstdc++只是为了看它是否有效但是没有...

./arm-linux-androideabi-g++ -o ff first.cpp -I /home/hari/android-ndk-r7b/platforms/android-9/arch-arm/usr -lstdc++

3 个答案:

答案 0 :(得分:7)

首先,您需要创建独立工具链:

make-standalone-toolchain.sh --platform=android-14 --install-dir=standalone-toolchain --ndk-dir=$ANDROID_NDK_PATH

导出路径:

export PATH=$TOOLCH/standalone-toolchain/bin:$PATH

然后构建文件:

arm-linux-androideabi-g++ -o test-new test.cpp

注意:使用版本8b的问题,这是NDK的最新版本:http://code.google.com/p/android/issues/detail?id=35279

arm-linux-androideabi-g++ -o test-new test.cpp --sysroot=$TOOLCH/sysroot
-I$TOOLCH/lib/gcc/arm-linux-androideabi/4.6.x-google/include
-I$TOOLCH/lib/gcc/arm-linux-androideabi/4.6.x-google/include-fixed
-I$TOOLCH/arm-linux-androideabi/include/c++/4.6
-I$TOOLCH/arm-linux-androideabi/include/c++/4.6/arm-linux-androideabi
-I$TOOLCH/sysroot/usr/include

答案 1 :(得分:1)

查看错误:     iostream: No such file or directory

#include "iostream"应该是#include #include <iostream>

答案 2 :(得分:0)

根据http://code.google.com/p/android/issues/detail?id=35279,这是独立工具链的错误。我认为最好的解决办法是 ln -s $TOOLCH/arm-linux-androideabi/include/c++/4.6 $TOOLCH/arm-linux-androideabi/include/c++/4.6.x-google