(详细)在windows平台使用CMAKE安装CGNS

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(详细)在windows平台使用CMAKE安装CGNS相关的知识,希望对你有一定的参考价值。

参考技术A 墙裂推荐阅读上一篇文章: https://www.jianshu.com/p/bf2fd1752f7f
若安装支持HDF5的CGNS,同样参考该文章安装HDF5

以上命令中主要可调整条目参看下表

库文件位于下面目录

上述文件分别拷贝到安装目录下的include和lib文件夹

在Windows平台借助cmake编译jni

依赖

  1. jdk
  2. visual studio(只需安装 cl 即可)

(备注:我使用的是Visual Studio Code作为代码编辑工具,当然也可以使用txt或vim等其它文本编辑工具)

步骤

  1. 创建Java类文件
  • mkdir projectDir & cd projectDir
  • mkdir java & cd java
  • mkdir simen & cd simen //simen为包名
  • vim Test.java
package simen;

import java.nio.file.FileSystems;

public class Test

    static
        System.load(
                    FileSystems.getDefault()
                            .getPath("./build/Debug/jnitests.dll")  // Dynamic link
                            .normalize().toAbsolutePath().toString());
    

    public static void main(String[] args)
        System.out.println("Test"+testVal());
    

    public static native int testVal();

  • cd … //回到java目录
  • javac simen\\Test.java
  1. 创建jni文件
  • javah simen.Test //生成simen_Test.h文件
  • vim simen_Test.cpp
#include "simen_Test.h"

JNIEXPORT jint JNICALL Java_simen_Test_testVal
  (JNIEnv *, jclass)
      return 1;
  
  1. 创建CMakeLists.txt
  • vim CMakeLists.txt
cmake_minimum_required(VERSION 2.8)

project(JniExample)

set(CMAKE_BUILD_TYPE Release)

find_package(JNI REQUIRED)

include_directories($JNI_INCLUDE_DIRS)

set(CMAKE_CXX_FLAGS "$CMAKE_CXX_FLAGS -std=c++11")

set(SOURCE_FILES simen_Test.cpp)

add_library(jnitests SHARED $SOURCE_FILES)
  1. 编译生成 jnitests.dll
  • mkdir build & cd build
  • cmake …
  • cd CMakeFiles
  • cmake --build …
  1. 运行Test类
  • cd ProjectDir\\src\\main\\java
  • java simen.Test -DC:\\
    (备注 C:\\ 为运行目录,java程序需要)

示例项目

源码链接: https://pan.baidu.com/s/1PmSFBwtzKKMwwDfGbAQRVg 提取码: xsjb

以上是关于(详细)在windows平台使用CMAKE安装CGNS的主要内容,如果未能解决你的问题,请参考以下文章

使用opencv320演示window平台cmake的使用方法 20170729

Windows系统下安装 CMake

在Windows平台借助cmake编译jni

在Windows平台借助cmake编译jni

Cmake是啥?有啥用?在WINDOWS下如何用

Qt opencv编译详细教程(windows版)