如题所说。
我在win7系统下安装了vmware虚拟机,然后安装了linux系统10.04版本。
现我在linux下写了一个简单的main.c,里面只有printf("hello world\n");,通过gcc编译成main可执行文件,在虚拟机可正常运行,输出正确结果。
之后我用ndk编译main.c,生成一个在安卓系统上能运行的程序,放到安卓系统中修改权限后执行也能输出正确结果。
然后我发现ndk能够编译出x86架构的程序,所有选择了这个架构,编译之后生成“libs/x86/main”,放到虚拟机里,运行,提示“bash: ./main: 没有那个文件或目录”,可是文件一定是存在的,而且也是chmod 777 之后的。所以我认为是用ndk编译出的x86程序在我的linux上不能用。可是这hi为什么呢?我的linux不也是x86架构吗?如果不能在这运行,那应该去哪运行呢?
nkd-build V=1时出现的提示如下:“
Install : main => libs/x86/main
install -p /mnt/hgfs/share/execise/ndkso/obj/local/x86/main /mnt/hgfs/share/execise/ndkso/libs/x86/main
/home/android-ndk-r8e/toolchains/x86-4.4.3/prebuilt/linux-x86/bin/i686-linux-android-strip --strip-unneeded /mnt/hgfs/share/execise/ndkso/libs/x86/main”
也就是说ndk用的是i686-linux-android-strip进行编译的x86程序,我的linux中执行uname -a的结果如下“Linux 2.6.32-21-generic #32-Ubuntu SMP Fri Apr 16 08:10:02 UTC 2010 i686 GNU/Linux
”后面也是i686的,为什么不行呢?
请高手指点。。。
------解决方案--------------------
ndk能够编译出x86架构的程序,所有选择了这个架构,编译之后生成“libs/x86/main”,放到虚拟机里,运行,提示“bash: ./main: 没有那个文件或目录”
你需要放到x86架構的模擬器裏面運行