如何解决用CMake未定义引用`JNI_CreateJavaVM'?
我需要从C ++运行Java,一般来说问题已经解决,但我的make系统或脚本出了问题,有一个创建JVM的C ++文件:
#include <jni.h>
#include <iostream>
#include <string> using namespace std; int main() {
JavaVMOption jvmopt[];
jvmopt[].optionString = const_cast<char *>("-Djava.class.path=."); JavaVMInitArgs vmArgs;
vmArgs.version = JNI_VERSION_1_2;
vmArgs.nOptions = ;
vmArgs.options = jvmopt;
vmArgs.ignoreUnrecognized = JNI_TRUE; // Create the JVM
JavaVM *javaVM;
JNIEnv *jniEnv;
long flag = JNI_CreateJavaVM(&javaVM, (void **)
&jniEnv, &vmArgs); return ;
}
有一个CMakeLists.txt文件:
cmake_minimum_required(VERSION 3.12)
project(games_test_system) include_directories(/usr/java/jdk-10.0./include /usr/java/jdk-10.0./include/linux)
link_directories(/usr/java/jdk-10.0./lib /usr/java/jdk-10.0./lib/server) set(CMAKE_CXX_STANDARD ) add_executable(games_test_system main.cpp)
运行它:
/opt/clion-2018.2./bin/cmake/linux/bin/cmake --build /home/obabichev/CLionProjects/games-test-system/cmake-build-debug --target games_test_system -- -j
得到这个错误:
[ %] Linking CXX executable games_test_system
CMakeFiles/games_test_system.dir/main.cpp.o: In function `main':
/home/obabichev/CLionProjects/games-test-system/main.cpp:: undefined reference to `JNI_CreateJavaVM'
collect2: error: ld returned exit status
CMakeFiles/games_test_system.dir/build.make:: recipe for target 'games_test_system' failed
make[]: *** [games_test_system] Error
CMakeFiles/Makefile2:: recipe for target 'CMakeFiles/games_test_system.dir/all' failed
make[]: *** [CMakeFiles/games_test_system.dir/all] Error
CMakeFiles/Makefile2:: recipe for target 'CMakeFiles/games_test_system.dir/rule' failed
make[]: *** [CMakeFiles/games_test_system.dir/rule] Error
Makefile:: recipe for target 'games_test_system' failed
make: *** [games_test_system] Error
回答:
在CMakeLists.txt文件中,添加
find_package(JNI REQUIRED)
target_link_libraries(games_test_system ${JNI_LIBRARIES})
而不是手动选择目录也可以依赖CMake:
include_directories(${JNI_INCLUDE_DIRS}
如何解决用CMake未定义引用`JNI_CreateJavaVM'?的更多相关文章
- Qt对`vtable的未定义引用
错误描述:Qt在linux系统编译时,遇到一个错误大致如下形式 在 xxxxx函数中 对‘vtable for xxxxx未定义的引用 网上找了很多,各种情况都有,大多数是虚函数未实现导致的, 但也有 ...
- 【C语言】 Linux下编译提示pow未定义引用
如下代码: #include <stdio.h> // 调用基本输入输出函数库 #include <math.h> #define PI 3.14 // 定义常量 float ...
- MinGW平台 openjpeg-2.1.0 静态编译后未定义引用的解决方法
undefined reference to __imp_opj_xxx keyword: ffmpeg,openjpeg,OPJ_EXPORTS,OPJ_STATIC,opj_version,__i ...
- 解决p4c安装时protobuf未定义引用的错误
安装好p4c的依赖之后,执行make -j2时出现以下问题: undefined references to `google::protobuf::internal::LogMessage::oper ...
- 关于一个多个.cpp文件的项目中,函数出现未定义引用错误
编译的话,必须把全部的c文件都要编译的啊,只编译一个c算怎么个逻辑呢?编译实际上是2个过程,编译和链接.编译过程只检查所有的符号(变量,函数)有没有声明,即只需要h文件生命就够了.但是链接时候,需要找 ...
- gcc5.4报错对‘std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()’未定义的引用
我在编译ligra是遇到了这个问题,网上搜了一遍,发现是了原因https://gcc.gnu.org/onlinedocs/libstdc%2B%2B/manual/using_dual_abi.ht ...
- 对‘TIFFReadDirectory@LIBTIFF_4.0’未定义的引用-------------- 解决办法
ABLE_DEPRECATED' is defined [-Winvalid-pch] //usr/lib/libvtkIO.so.5.10:对‘TIFFReadDirectory@LIBTIFF_4 ...
- ASP.NET中母版页引用外部js或css文件无效,提示对象未定义解决方法
最近做网站用了一个js+css实现的带有二级菜单的导航条,在母版页创建好后,子页面调用出现了许多奇怪的问题,多方查证后的最终解决方案和大家分享下.... 1.路径问题 如果是一个单独的aspx页面调用 ...
- [原创]如何解决IE10下CkEditor报 --- SCRIPT5007: 无法获取未定义或 null 引用的属性“toLowerCase”
如何解决IE10下CkEditor报 --- SCRIPT5007: 无法获取未定义或 null 引用的属性“toLowerCase” 错误 如果你的IE是IE10,且不是运行在IE的兼容模式你也许会 ...
随机推荐
- 在word 2010中采用EndNote X7插入引用
本文只供入门操作,记于此以防自己忘记,或帮助走过路过的你解决一时之需,即便是只能帮助到一个人,我的辛苦也就没有白费. 用EndNote向Word中直接插入参考文献能极大的提高论文写作的速度.在此以En ...
- js 解析url中search时存在中文乱码问题解决方案
一 问题出现原因 当存在这样一种需求,前端需要通过url中search返回值进行保存使用,但如果search中存在中文解析出来会导致乱码.这个问题我找了很久原因,最后终于知道解决方案,这里和大家分享一 ...
- 夜神模拟已开启,adb命令检测不了设备解决方法
日常APP测试中,很难拥有多种机型和各种安卓版本的手机,此时可以借助模拟器. 命令返回结果只有 “List of devices attached”,即代表检测不了模拟器 最近在使用夜神模拟器的时候, ...
- Android_自适应布局
1.屏幕相关概念1.1分辨率是指屏幕上有横竖各有多少个像素1.2屏幕尺寸指的是手机实际的物理尺寸,比如常用的2.8英寸,3.2英寸,3.5英寸,3.7英寸android将屏幕大小分为四个级别(smal ...
- SQL 必知必会·笔记<15>创建和操纵表
创建表的两种办法: 使用DBMS 提供的交互式创建和管理数据库表的工具: 直接用SQL 语句创建. 表创建基础 创建表示例: CREATE TABLE Products ( prod_id ) NOT ...
- Vue + Element UI 实现权限管理系统 前端篇(十一):第三方图标库
使用第三方图标库 用过Elment的同鞋都知道,Element UI提供的字体图符少之又少,实在是不够用啊,幸好现在有不少丰富的第三方图标库可用,引入也不会很麻烦. Font Awesome Font ...
- 如何优化Mysql千万级快速分页,limit优化快速分页,MySQL处理千万级数据查询的优化方案
如何优化Mysql千万级快速分页,limit优化快速分页,MySQL处理千万级数据查询的优化方案
- 反调试手法之CreateProcess反调试
反调试手法之CreateProcess反调试 在学习Win32 创建进程的时候.我们发现了有一个进程信息结构体. STARTUPINFO. 这个结构体可以实现反调试. 具体CreateProcess可 ...
- win10 HTTP 错误 500.21 - Internal Server Error
错误描述: HTTP 错误 500.21 - Internal Server Error 处理程序“ExtensionlessUrlHandler-Integrated-4.0”在其模块列表中有一个错 ...
- 经典面试题SALES TAXES思路分析和源码分享
题目: SALES TAXES Basic sales tax is applicable at a rate of 10% on all goods, except books, food, and ...