win10 ndk hello_world

天涯浪子 提交于 2020-08-05 05:26:30

 

https://tieba.baidu.com/p/5213203060?red_tag=1988544260

 

用ndk编译用于安卓上运行的库hello_world.so.
prerequisites:
1.安装好android-ndk-r12b或者其他版本,安装有android sdk
2.安装好MinGW与配件msys
ndk


msys


从网盘分享下载解压得hello_world.cpp、makefile两个文件
度盘1o7PIsAI密码g7dn
其中hello_world.cpp:
#include <iostream>


int main(int argc,char *argv[])
{
for (int i=0;i<argc;i++)
printf("argv[%d]=%s\n",i,argv[i]);
return 0;
}
是个回显命令行参数的简单程序。




配置makefile:
用notepad++打开,将其中的NDK_ROOT变量值改成你自己的ndk根路径。android SDK根目录变量PLATFROM_ROOT如是。


#makefile for hello_world
NDK_ROOT=F:/COD/NVPACK/android-ndk-r12b
TOOLCHAINS_ROOT=$(NDK_ROOT)/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64
TOOLCHAINS_PREFIX=$(TOOLCHAINS_ROOT)/bin/arm-linux-androideabi
TOOLCHAINS_INCLUDE=$(TOOLCHAINS_ROOT)/lib/gcc/arm-linux-androideabi/4.9.x/include-fixed
PLATFROM_ROOT=$(NDK_ROOT)/platforms/android-23/arch-arm
PLATFROM_INCLUDE=$(PLATFROM_ROOT)/usr/include
PLATFROM_LIB=$(PLATFROM_ROOT)/usr/lib
MODALE_NAME=hello_world
RM=del


FLAGSMY=-I$(TOOLCHAINS_INCLUDE)\
-I$(PLATFROM_INCLUDE)\
-I$(NDK_ROOT)/sources/cxx-stl/stlport/stlport/ \
-L$(PLATFROM_LIB)\
-l$(NDK_ROOT)/sources/cxx-stl/stlport/libs/armeabi/libstlport_static.a\
-nostdlib\
-lgcc\
-Bdynamic\
-lc\
-shared
OBJS=$(MODALE_NAME).o\
$(PLATFROM_LIB)/crtbegin_dynamic.o\
$(PLATFROM_LIB)/crtend_android.o
all:
$(TOOLCHAINS_PREFIX)-gcc $(FLAGSMY) $(MODALE_NAME).cpp -o $(MODALE_NAME).so
clean:
$(RM) *.o
注意makefile的tab就是tab而不能是4个空格


编译:
双击打开msys.bat,cd 至hello_world.cpp、makefile所在目录,比如F:/video_wrkst/ndkTry/huixian
make
完成!




附gcc编译出.exe指令:
g++ hello_world.cpp -o hello_world.exe -std=c++11







































































易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!