Windows下使用CLion进行NDK编程(CMake)

        众所周知,使用ndk编译代码有三种使用方式,分别是基于 Make 的 ndk-build、CMake以及独立工具链。以前进行ndk编程都是使用ndk-build进行的,新建jni目录,编写Android.mk和Application.mk,使用Notepad++进行代码编写,然后执行ndk-build进行编译。不过随着项目越来越大,这种基于记事本的编辑简直无法忍受了,于是想到了使用CLion IDE进行代码的编写和编译。CLion使用的是CMake进行项目构建的。

        在ndk r19版本以前,要在CLion上编译ndk只能采用独立工具链的方式,创建独立工具链供CLion调用,官方文档如下:

独立工具链-官方文档

不过r19之后,ndk的默认工具链都是独立工具链了,不需要再创建了。截止至2020.7.1,最新的NDK版本为21.0.6113669,本文将基于该ndk版本使用CLion进行编程。

1.工具链配置

首先安装CLion和ndk工具包,然后新建工程,打开菜单File->Settings->Build,Execution,Deployment->Toolchains,点击加号选择“MinGW”新建一个工具链,如果系统没有MinGW的话,可以点击菜单右边的“Download”,在新打开的网页中点击“Sourceforge”进行下载安装,安装完成后还需要添加环境变量,网上教程很多就不再赘述了。这里我装在C盘,工具链配置如下图所示,主要是Make、C Compiler、C++ Compiler以及Debugger这四个路径的配置。

其中"\ndk\21.0.6113669\"为你的ndk根目录,根目录结构如下图所示。

2.CMake配置

打开菜单File->Settings->Build,Execution,Deployment->CMake,点击加号添加新的CMake项目配置,Name名字随便起。Toolchains选择刚才的工具链配置。 CMake options点击右边的展开,输入以下配置项。

-DCMAKE_TOOLCHAIN_FILE="D:\AndroidStudioSDK\ndk\21.0.6113669\build\cmake\android.toolchain.cmake"
-DCMAKE_SYSTEM_NAME=Android
-DANDROID_ABI=arm64-v8a
-DCMAKE_ANDROID_NDK="D:\AndroidStudioSDK\ndk\21.0.6113669"
-DCMAKE_SYSTEM_VERSION=24
-DCMAKE_C_FLAGS=""
-DCMAKE_CXX_FLAGS=""
-DCMAKE_ANDROID_NDK_TOOLCHAIN_VERSION=clang

CMake配置如下图所示,下面的三项可以留空。。

 

其中最重要的是CMAKE_TOOLCHAIN_FILE、CMAKE_SYSTEM_NAME以及ANDROID_ABI这三项的配置,第一个指定ndk的CMake配置文件,它位于<NDK>/build/cmake/android.toolchain.cmake,第二个是目标系统平台,这里为Android,第三个是架构,这里手机CPU是arm64-v8a架构的,所以用arm64-v8a。具体配置参考项可以访问官方文档,左上角选择CMake版本即可查看。

3.编译下载

演示就用最简单的Hello World!吧,main.c代码如下。

#include <stdio.h>

int main() {
    printf("Hello, World!\n");
    return 0;
}

CMakeLists.txt配置如下。

cmake_minimum_required(VERSION 3.16)
project(Demo C)

set(CMAKE_C_STANDARD 11)

add_executable(Demo main.c)

点击左边的锤子图标即可编译,编译完成后文件生成在cmake-build-CMake配置名目录下。

使用adb下载到手机或模拟器,赋给可执行权限,然后执行即可看到效果,JNI编程则引入头文件jni.h并把项目类型改为Libray即可生成so库。

 

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
使用CLion时,可以通过以下步骤调出CMake: 1. 安装新版本的CMake:首先,你需要安装新版本的CMake。你可以通过以下命令来下载和安装CMake3.21.1: ``` wget -c https://github.com/Kitware/CMake/releases/download/v3.21.1/cmake-3.21.1.tar.gz yum install openssl openssl-devel tar -zxvf cmake-3.21.1.tar.gz cd cmake-3.21.1 ./bootstrap make make install ln -s /usr/local/bin/cmake /bin/cmake cmake --version ``` 2. 配置工程:在CLion中,通过执行CMake成功后,你可以在菜单栏中选择"Run" -> "Edit Configurations"来配置启动参数、工作目录、环境变量。 3. 编译项目:点击菜单栏中的绿色锤子图标进行编译。如果编译成功,你可以点击绿色虫子图标进行调试。你还可以在代码中设置断点,然后使用调试快捷键(F7进入函数,F8单步调试,F9跳转到下一个断点)来调试。 4. 解决未声明的标识符nullptr问题:如果在编译过程中出现未声明的标识符nullptr的错误,这是由于CMake无法正确使用C++11特性。你可以在makefile文件中添加以下内容来解决这个问题: ``` SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -std=c++11") ``` 5. 执行CMake:如果你下载了一个包含CMakeLists.txt的项目,你可以在CLion中选择该文件,然后右键点击并选择"Load CMake Project",然后执行CMake。在执行CMake之前,你还可以使用命令`sudo chmod 777 -R *`来修改一次权限。 这样,你就可以在CLion中调出CMake进行相应的配置和编译了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [windows环境CLion调试SRS流媒体服务器源码](https://blog.csdn.net/weixin_40355471/article/details/127833119)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值