编译C/C++为dll供Java调用
开发环境准备
- 下载 Eclipse IDE for C/C++
地址:https://www.eclipse.org/downloads/packages/
- 安装mingw64
地址:http://www.mingw-w64.org/doku.php/download
1)配置mingw64环境变量
C_INCLUDE_PATH : mingw64安装目录\include
LIBRARY_PATH :mingw64安装目录\lib
2)系统变量的path变量中添加 mingw64安装目录\bin
注意:以防万一,本文也将include和lib目录也加入了path变量中
3)测试 cmd里执行如下命令输出版本信息则安装成功1
gcc -v
编译C/C++为dll
eclipse环境下
- eclipse新建项目


- 新建源代码文件

- 编写方法

- 右键项目 properties 配置
1)Tool Chain Editor的配置
2)settings的配置

1
-Wl,--add-stdcall-alias -static-libgcc -static-libstdc++ -shared



- 右键项目 build project 执行编译

编译成功
在eclipse的工作目录 test项目下的debug目录可以找到编译好的dll文件
visual studio 2015环境下
- 新建win32项目


- 新建头文件
1
2
3
4
5
6
7#pragma once
#ifdef DLL_IMP
#define DLL_API __declspec(dllexport) //导出函数
#endif // DLL_API
extern "C" {
DLL_API char* say();
}
- 新建源文件
1
2
3
4
5
6
7#define DLL_IMP
#include "say.h"
#include<stdio.h>
char* say(){
printf("hello");
return "ok";
}
- 设置属性 编译为dll


Java调用dll
- 下载JNA jna.jar 地址:https://mvnrepository.com/artifact/com.sun.jna/jna/3.0.9
- 新建Java项目 引入jna.jar 并将dll拷贝到项目根路径下(否则需要填写dll的绝对路径)

- 编写调用接口类
1 | |
- 编写Main类 调用方法执行
1 | |
执行结果 如图
版权声明:原创,转载请注明来源,否则律师函警告
编译C/C++为dll供Java调用
https://jiaopaner.github.io/2019/03/10/eclipse编译C-C++为dll供Java调用/