我正在尝试编写一个构建脚本,替换掉自动构建工具,需要正确使用FIND_JNI。
我可以编写简单的构建脚本,但它不能正确地找到jni.h文件。
我需要找到一种合适的方法(不使用hack)来定义Java include路径,因为这个问题需要对其他用户是可移植的。
我正在尝试编写一个构建脚本,替换掉自动构建工具,需要正确使用FIND_JNI。
我可以编写简单的构建脚本,但它不能正确地找到jni.h文件。
我需要找到一种合适的方法(不使用hack)来定义Java include路径,因为这个问题需要对其他用户是可移植的。
以下代码适用于我。在您的根目录下的CMakeLists.txt
文件中添加:
find_package(JNI)
if (JNI_FOUND)
message (STATUS "JNI_INCLUDE_DIRS=${JNI_INCLUDE_DIRS}")
message (STATUS "JNI_LIBRARIES=${JNI_LIBRARIES}")
endif()
那个解决方案对我没有用,我使用了:
find_package(JNI REQUIRED)
include_directories(${JNI_INCLUDE_DIRS})
并且
echo $JAVA_HOME
必须返回有效的路径。
find_package(JNI REQUIRED)
导入的JNI::JNI
目标(而不是老式的*_INCLUDE_DIRS
):https://cmake.org/cmake/help/latest/module/FindJNI.html - JonasVautherintarget_link_libraries(my_target PRIVATE JNI::JNI)
这样的东西。 - JonasVautherin