| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 开发工具 -> idea 打dll、so包 -> 正文阅读 |
|
[开发工具]idea 打dll、so包 |
写在前面:参考了:https://blog.csdn.net/huachao1001/article/details/53906237 但是这篇文章有很多问题,配置gcc可以参考上面。 链接:?https://pan.baidu.com/s/1slpQrrJ 下载解压后,配置环境变量。 创建项目:IDEA社区版。 什么都别选。 ?打钩,确认。 java文件生成jni:新建java文件:(库名提前想好) 这块跟android的jni一样,terminal命令生成.h文件:
注意,必须运行一下项目生成class文件。(截图中out文件夹) 这里需要注意一下:-classpath后面跟的目录是out的;并且到项目根目录停止。
运行后生成:.h文件 ?新建一个名字相同的.c,在这个例子里就是HelloJNI.c。.h文件名字不要改。 这里是C基础了,不赘述。 打dll、lib包:
需要加入链接库-I,一个是jdk的include,一个是include下的win32。 主要是为了jni.h加入的,gcc的具体命令可以百度下哦。 gcc是“写在前面”里提前准备好的。C用gcc,C++用g++。 dll文件看不到的话,文件夹闭开一下: C++用g++去编译,如果报错找不到:xxx.cpp: No such file or directory 记得把cpp文件路径写对,或者cd到jni里面。 dll引入:这个时候运行HelloJNI.java文件,还是会报错: idea no hello in java.library.path dll没有自动引入,需要手动加进去,这点真不如android studio: File -> Project Structure -> Library -> + -> 选中项目中的dll文件 -> OK 最终是下图这样子: 再运行一下: ?OK啦。 写在最后:1.参考资料可以看看,但是细节太差,错误很多。 百度上面很多复制粘贴也是不行,请教了c++工程师,他帮我写的gcc编译的。 gcc -Wl,--..... 这个编辑器直接报语法错误。 2.静态包就是gcc指令改成-static,文件名改成hello.lib。 3.网络上铺天盖地的HelloJNI编译jni,但是都没有提到多文件怎么打包,我也正在摸索。公司项目都是层层嵌套,引入第三方库的文件。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/22 13:52:38- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |