一开始使用cmake --build .
来生成了dll,在导入到java项目中使用的时候,才发现是32位的。导致程序不能正常运行,报错如下:
Exception in thread "main" java.lang.UnsatisfiedLinkError
Can't load IA 32-bit .dll on a AMD 64-bit platform
即由于在AMD64的架构下调用了32位的dll文件,导致的安全问题。
看来需要让cmake编译出64位的dll才行啊。
下面分享一种可行的方法:
在介绍之前要先了解一个概念
cmake有两种编译的方式,一种是使用CMakeLists.txt文件,另一种是使用CMakeCache.txt文件
下面介绍方法:
1. 在CMakeLists.txt文件中添加
set(BUILD_USE_64BITS on)
cmake -G "Visual Studio 13 2015 Win64" .. //这个VS的版本取决于你安装的是哪个版本的VS
cmake --build .
构建成功,得到64bit版的dll了。