用 CMake 开发 JNI :第二章 第二个环境搭建

by

这篇也发蛤乎了,链接在此

为什么要用 CMake / CLion

依赖

准备工作

首先安装 JDK 和 CLion ,并将[jdk path]/bin/这个目录添加到环境变量。注意,这个目录下有很多重要的可执行文件,比如 javac javap javah 等。等会我们就需要用到 javah 。

然后 JDK 安装目录下有一个叫 include 的目录,里面有几个 C++ 头文件,这个 include 目录还有一个子目录,似乎叫 win32 。 现在把这些文件全部复制出来,放到一个地方。注意,把 include/win32 目录和 include 目录下的文件拷进 MinGW 的 include 目录。

写到这里我突然发现,这篇博客绝大多数内容都和上篇一样,所以我只写 CLion 操作和 CMake 配置的部分 = =

首先你需要阅读上一篇博客,直到你把那个 javah 生成的头文件搞出来。现在打开 CLion ,创建一个新工程。注意选好 MinGW 的路径。如果你已经安装 Dev Cpp ,你可以直接使用 Dev Cpp 自带的路径。创建好工程好,检查你现在的工作目录,是否和下面写的一样。

root
  - .idea
  - main.cpp
  - CMakeLists.txt

现在删除 main.cpp ,并将前一篇教程中给出的两个 C++ 代码文件(一个 .cpp ,一个 .h )放入当前工作目录。然后编辑 CMakeLists.txt 文件:

cmake_minimum_required(VERSION 3.6)
project(jni)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")

set(BUILD_USE_64BITS on)

set(
    SOURCE_TEMPLATES
)

set(
    SOURCE_FILES
    WinAPI.cpp
)

set(
    SOURCE_HEADERS
    WinAPI.h
)

# add_executable(jni ${SOURCE_FILES})
add_library(
    jni
    SHARED
    ${SOURCE_FILES}
    ${SOURCE_TEMPLATES}
    ${SOURCE_HEADERS}
)

target_link_libraries(jni)

然后 Ctrl+F9 编译,编译后你的目录应该是这样:

root
  - .idea
  - WinAPI.cpp
  - WinAPI.h
  - CMakeLists.txt
  - cmake-build-debug
    - libjni.dll
    - 还有一大堆鬼迷日眼的东西

就这么简单,把 libjni.dll 拷出来,重命名为 jni.dll ,剩下的又和上一篇教程同步了。

祝你愉快。 JNI 的实际使用还可以参照我的算法库,这是一个活生生的例子 DAZE ,请点击GitHub 传送门。喜欢的话给个 star 哟。

你学到了什么

Tweet this
Top


Create an issue to apply for commentary

License

This work (用 CMake 开发 JNI :第二章 第二个环境搭建) is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.

License