在mac中仅通过cmake编译c或c++代码默认生成的是dylib文件。
0.系统 macos sierra 10.12.5。
1.下载ndk https://developer.android.google.cn/ndk/downloads/
2.测试用的test.c文件
1 2 3 4 5 6 7 8 |
#include <stdio.h> int main(){ printf("hello cmake"); return 0; } |
3.编写CMakeLists.txt
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
################# # ${CMAKE_SOURCE_DIR}即CmakeLists.txt所在目录 ################# cmake_minimum_required(VERSION 3.6) set(CMAKE_SYSTEM_NAME Android) set(CMAKE_SYSTEM_VERSION 21) set(CMAKE_ANDROID_ARCH_ABI armebi) # armebi-v7a arm64-v8a set(CMAKE_ANDROID_NDK /Users/macpro/android-sdk/ndk-bundle/) set(CMAKE_TOOLCHAIN_FILE /Users/macpro/android-sdk/ndk-bundle/build/cmake/android.toolchain.cmake) set(CMAKE_ANDROID_STL_TYPE c++_shared) # https://blog.csdn.net/fpcc/article/details/72820934 set(CMAKE_BUILD_TYPE DEBUG) #指定生成的版本。RELEASE set(CMAKE_CXX_STANDARD 11) #c++标准 set(CMAKE_CXX_FLAGS_DEBUG "-std=c++11 -frtti -fexceptions") #指定编译选项 set(SRC_LIST test.c) #源码文件 project(hello) #自定义名称 add_library(hello SHARED ${SRC_LIST}) set_target_properties(hello PROPERTIES OUTPUT_NAME "hello_armebi") |
和test.c文件放在同一目录里。
4.本例cmake用的是ndk中自带的,位于/Users/macpro/android-sdk/cmake/3.6.4111459/bin,设置进环境变量。
从终端进入CMakeLists.txt文件所在目录。
1 2 3 4 |
cmake . make |
声明
本文由崔维友 威格灵 cuiweiyou vigiles cuiweiyou 原创,转载请注明出处:http://www.gaohaiyan.com/2253.html
承接App定制、企业web站点、办公系统软件 设计开发,外包项目,毕设