windows下使⽤cmake和ndk编译android所⽤动态库.so和静态
库.a
不在linux上编译android所⽤.a和.so,在windows上如何编译呢?
1.准备⼯作:
cmake如何使用1.vs2008,别的版本vs应该也可以,我⽤的就是2008;
感谢⼈家,俺还不会写。
2.开始写⼀点点代码
3.编译so
写个CMakeLists⽂件,⾄于如何写,这⾥先不说,也是直接上代码:
cmake_minimum_required(VERSION 3.1)
set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/libs)
add_library(libJni SHARED ${SRC_LIST})
set_target_properties(libJni PROPERTIES OUTPUT_NAME "JNI")
此⽂件放到与c++⽂件同⽬录,为了将编译与源码相分离,在此⽬录新建⽂件夹build,在⾥⾯新建批处理⽂件build.dat:
set ANDROID_NDK=<NDK根⽬录>
cmake .. -G "NMake Makefiles" -DCMAKE_TOOLCHAIN_FILE=&ake⽂件位置,包含⽂件名> -DCMAKE_MAKE_PROGRAME=<NDK根⽬录nmake
之后打开vs2005命令⾏窗⼝,cd到build.dat⽬录,运⾏build批处理⽂件,OK⼤功告成,在build⽂件夹
libs⽂件夹吧,看看⾥边有没有⼀个叫
libJNI.so的⽂件
在android中加载它,并调⽤native函数试试看,结果是不是加了1
ps:为了节省时间, ⽤的例⼦基本上都是最简单的,复杂的情况⼤家可以⾃⼰扩展;⼀些东西也没有介绍,例如
<如何写,jni头⽂件如何⽣成,不过这些⽹上有很多。⼤家可以百度之,很多⼈写的⾮常好。有时间我也
总结总结;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论