REAL-ESSI 프로그램은 Post processing을 위해 PARAVIEW를 사용한다.
그런데, REAL-ESSI는 독자적인 Output format(ESSI (HDF5) .feioutput file)을 사용함에 따라, 이를 인식할 수 있도록 PARAVIEW Plug-in을 설치할 필요가 있다. 사용되는 플러그인은 PVESSI라고 한다.
먼저, PARAVIEW를 설치하여야 한다. PARAVIEW는 APT나 Debian 배포판을 이용한 Binary설치 또는 Source code를 이용한 Compile 설치 중 선택가능하다.
그러나, PARAVIEW의 Plug-in들은 Source code로 제공되어 컴파일 되어야 하므로 PARAVIEW의 라이브러리를 가져다 컴파일 되어야 한다. 그러므로, PARAVIEW는 Source code를 이용한 Compile설치를 하여야 한다.
예외로, PARAVIEW 바이너리 설치시 Docker를 이용하여 버젼에 맞는 플러그인을 제공하는 스크립트를 Kitware에서 아래의 링크로 제공하는 듯 하나 이건 아직 확인해 보지 못하였다.
https://gitlab.kitware.com/paraview/paraview-easy-plugin-builder
1. 우선 PARAVIEW를 Source Code를 이용한 Compile 설치한다.
- PARAVIEW는 Cmake를 이용하여 Ninja Build하는 것을 추천하고 있다.
https://gitlab.kitware.com/paraview/paraview/blob/master/Documentation/dev/build.md
- PARAVIEW가 설치되었다. 실행화일은 build 디렉토리 아래 bin 디렉토리에 생기며, 내가 설치한 버전은 이 포스팅을 작성하는 시점에서 가장최신인 5.12.0임을 알 수 있다.
/paraview_build/bin$ ./paraview --version
paraview version 5.12.0-RC1-303-g977b7c7e6b
2. PVESSI Plug-in을 설치해 보자
- 아래의 링크에서 PVESSI를 다운로드 가능하다.
- 다운로드한 파일을 paraview_build/Plugins 디렉토리에 PVESSI디렉토리를 만들어 복사하도록 하자.
/paraview_build/Plugins/PVESSI$ ls
CMakeLists.txt Plugin Tools
- CmakeLists.txt 파일에는 Paraview build 디렉토리를 설정하도록 하자. 다른방법으로, cmake 실행 옵션에 -DParaview_DIR = " PATH"를 통해 실행하는 방법도 있다.
cmake_minimum_required(VERSION 3.8)
project(PVESSI)
set(CMAKE_BUILD_TYPE RELEASE)
include(GNUInstallDirs)
set(BUILD_SHARED_LIBS ON)
set(ParaView_DIR "/home/hp-z8/Downloads/paraview_build")
find_package(ParaView REQUIRED)
paraview_plugin_scan(
PLUGIN_FILES "${CMAKE_CURRENT_SOURCE_DIR}/Plugin/paraview.plugin"
PROVIDES_PLUGINS plugins
ENABLE_BY_DEFAULT ON)
paraview_plugin_build(
PLUGINS ${plugins})
- build directory를 만들어 cmake를 실행하면, makefile이 생긴다.
~/Downloads/paraview_build/Plugins/PVESSI$ ls
CMakeLists.txt Plugin Tools
~/Downloads/paraview_build/Plugins/PVESSI$ ls
CMakeLists.txt Plugin Tools
~/Downloads/paraview_build/Plugins/PVESSI$ mkdir build
~/Downloads/paraview_build/Plugins/PVESSI$ ls
build CMakeLists.txt Plugin Tools
~/Downloads/paraview_build/Plugins/PVESSI$ cd build
~/Downloads/paraview_build/Plugins/PVESSI/build$ cmake ..
-- The C compiler identification is GNU 7.5.0
-- The CXX compiler identification is GNU 7.5.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Found X11: /usr/include
-- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so
-- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so - found
-- Looking for gethostbyname
-- Looking for gethostbyname - found
-- Looking for connect
-- Looking for connect - found
-- Looking for remove
-- Looking for remove - found
-- Looking for shmat
-- Looking for shmat - found
-- Looking for IceConnectionNumber in ICE
-- Looking for IceConnectionNumber in ICE - found
-- Found MPI_C: /usr/lib/x86_64-linux-gnu/openmpi/lib/libmpi.so (found version "3.1")
-- Found MPI: TRUE (found version "3.1") found components: C
-- Found OpenGL: /usr/lib/x86_64-linux-gnu/libOpenGL.so found components: OpenGL GLX
-- Found Python3: /usr/bin/python3.10 (found suitable version "3.10.12", minimum required is "3.10") found components: Interpreter Development.Module Development.Embed
-- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY
-- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY - Success
-- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY
-- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY - Success
-- Performing Test COMPILER_HAS_DEPRECATED_ATTR
-- Performing Test COMPILER_HAS_DEPRECATED_ATTR - Success
-- Configuring done
-- Generating done
-- Build files have been written to: /home/hp-z8/Downloads/paraview_build/Plugins/PVESSI/build
~/Downloads/paraview_build/Plugins/PVESSI/build$ ls
CMakeCache.txt CMakeFiles cmake_install.cmake lib Makefile Plugin
- 이제 make를 해보자. 문제가 생겼다. 에러가 두개 뜬다.
~/Downloads/paraview_build/Plugins/PVESSI/build$ make
[ 7%] Generating the wrap hierarchy for PVESSIReaders
[ 7%] Built target PVESSIReaders-hierarchy
[ 14%] Building CXX object Plugin/Reader/CMakeFiles/PVESSIReaders.dir/vtkPVESSIReader.cxx.o
/home/hp-z8/Downloads/paraview_build/Plugins/PVESSI/Plugin/Reader/vtkPVESSIReader.cxx: In member function ‘void vtkPVESSIReader::Domain_Initializer(int)’:
/home/hp-z8/Downloads/paraview_build/Plugins/PVESSI/Plugin/Reader/vtkPVESSIReader.cxx:2238:97: error: too few arguments to function ‘herr_t vtkhdf5_H5Ovisit3(hid_t, H5_index_t, H5_iter_order_t, H5O_iterate2_t, void*, unsigned int)’
status = H5Ovisit (id_Physical_Element_Groups, H5_INDEX_NAME, H5_ITER_NATIVE, op_func, NULL);
^
In file included from /home/hp-z8/Downloads/paraview/VTK/ThirdParty/hdf5/vtkhdf5/src/H5public.h:32:0,
from /home/hp-z8/Downloads/paraview/VTK/ThirdParty/hdf5/vtkhdf5/src/hdf5.h:22,
from /home/hp-z8/Downloads/paraview_build/Plugins/PVESSI/Plugin/Reader/vtkPVESSIReader.h:34,
from /home/hp-z8/Downloads/paraview_build/Plugins/PVESSI/Plugin/Reader/vtkPVESSIReader.cxx:1:
/home/hp-z8/Downloads/paraview/VTK/ThirdParty/hdf5/vtkhdf5/src/H5Opublic.h:1205:15: note: declared here
H5_DLL herr_t H5Ovisit3(hid_t obj_id, H5_index_t idx_type, H5_iter_order_t order, H5O_iterate2_t op,
^
/home/hp-z8/Downloads/paraview_build/Plugins/PVESSI/Plugin/Reader/vtkPVESSIReader.cxx:2242:94: error: too few arguments to function ‘herr_t vtkhdf5_H5Ovisit3(hid_t, H5_index_t, H5_iter_order_t, H5O_iterate2_t, void*, unsigned int)’
status = H5Ovisit (id_Physical_Node_Groups, H5_INDEX_NAME, H5_ITER_NATIVE, op_func, NULL);
^
In file included from /home/hp-z8/Downloads/paraview/VTK/ThirdParty/hdf5/vtkhdf5/src/H5public.h:32:0,
from /home/hp-z8/Downloads/paraview/VTK/ThirdParty/hdf5/vtkhdf5/src/hdf5.h:22,
from /home/hp-z8/Downloads/paraview_build/Plugins/PVESSI/Plugin/Reader/vtkPVESSIReader.h:34,
from /home/hp-z8/Downloads/paraview_build/Plugins/PVESSI/Plugin/Reader/vtkPVESSIReader.cxx:1:
/home/hp-z8/Downloads/paraview/VTK/ThirdParty/hdf5/vtkhdf5/src/H5Opublic.h:1205:15: note: declared here
H5_DLL herr_t H5Ovisit3(hid_t obj_id, H5_index_t idx_type, H5_iter_order_t order, H5O_iterate2_t op,
^
/home/hp-z8/Downloads/paraview_build/Plugins/PVESSI/Plugin/Reader/vtkPVESSIReader.cxx:2272:32: warning: passing NULL to non-pointer argument 1 of ‘herr_t vtkhdf5_H5Eset_auto2(hid_t, H5E_auto2_t, void*)’ [-Wconversion-null]
H5Eset_auto (NULL, NULL, NULL); // To stop HDF% from printing error message
^
/home/hp-z8/Downloads/paraview_build/Plugins/PVESSI/Plugin/Reader/vtkPVESSIReader.cxx: In member function ‘void vtkPVESSIReader::Update_Time_Steps()’:
/home/hp-z8/Downloads/paraview_build/Plugins/PVESSI/Plugin/Reader/vtkPVESSIReader.cxx:3026:31: warning: passing NULL to non-pointer argument 1 of ‘herr_t vtkhdf5_H5Eset_auto2(hid_t, H5E_auto2_t, void*)’ [-Wconversion-null]
H5Eset_auto (NULL, NULL, NULL); // To stop HDF5 from printing error message
^
make[2]: *** [Plugin/Reader/CMakeFiles/PVESSIReaders.dir/build.make:76: Plugin/Reader/CMakeFiles/PVESSIReaders.dir/vtkPVESSIReader.cxx.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:257: Plugin/Reader/CMakeFiles/PVESSIReaders.dir/all] Error 2
make: *** [Makefile:136: all] Error 2
- H50visit 펑션의 문제로 소스코드인 vtkPVESSIReader.cxx의 2238, 2242행에서 문제가 발생하였는데, 확인해 보니
status = H5Ovisit (id_Physical_Node_Groups, H5_INDEX_NAME, H5_ITER_NATIVE, op_func, NULL);
- 소스코드는 H50visit을 사용하는데, 컴파일 과정에서 H50visit3로 변경되어 컴파일 되고 있다.
error: too few arguments to function ‘herr_t vtkhdf5_H5Ovisit3(hid_t, H5_index_t, H5_iter_order_t, H5O_iterate2_t, void*, unsigned int)’
status = H5Ovisit (id_Physical_Node_Groups, H5_INDEX_NAME, H5_ITER_NATIVE, op_func, NULL);
3. 문제를 해결해 보자
- HDF5에서는 버전 1.12와 1.10에서 major change가 발생하였는데, 이로 인하여 compatibility issue가 발생한다고 한다.
https://docs.hdfgroup.org/hdf5/develop/api-compat-macros.html
HDF5: API Compatibility Macros
Audience The target audience for this document has existing applications that use the HDF5 library, and is considering moving to the latest HDF5 release to take advantage of the latest library features and enhancements. Compatibility Issues With each major
docs.hdfgroup.org
- 문제가 생긴 H50visit fuction은 1.12 이후에는 macro로 사용되어 H50visit1 또는 H50visit3으로 컴파일과정에서 매핑이 된다고 한다.
- 추측컨데, 현재 설치된 HDF5 라이브러리의 버전이 1.12보다 높아 소스코드의 H50visit함수가 H50visit3으로 매핑되어 생기는 결과로 판단된다. (h5cc의 옵션을 설정하지 않으면 디폴트로 H50visit3로 매핑되도록 되어있다)
- HDF5 1.15버전에서 H50visit3()과 H50visit1()함수를 보면, 각각 인수가 6개, 5개를 사용하게 되어 있고 소스코드의 H50visit()은 현재버전의 H50visit1()에 해당되는 것 같다.
- 그런데, H50visit1()은 사용을 자제(Deprecated)해 달라고 한다. 개발쪽 영역에서는 deprecated는 앞으로 없어질 명령어나 API이니 사용을 자제해 달라는 뜻이고, Obsolete는 없어져서 이제 지원하지 않는다는 뜻이다.
- 그러니 아직은 쓸 수 있다.
Deprecated:
As of HDF5-1.12 this function has been deprecated in favor of the function H5Ovisit3() or the macro H5Ovisit.
Version
1.10.5 The macro H5Ovisit was removed and the function H5Ovisit1() was copied to H5Ovisit().
1.10.3 Function H5Ovisit() was copied to H5Ovisit1(), and the macro H5Ovisit was created.
1.8.8 Fortran subroutine introduced in this release.
HDF5를 사용하는 C프로그래밍에서는 gcc 대신 h5cc wrapper compiler를 사용한다.
현재 설치된 h5cc의 버전을 확인해 보면, 버전 1.10.7이 설치되어 있다.
h5cc -showconfig
SUMMARY OF THE HDF5 CONFIGURATION
=================================
General Information:
-------------------
HDF5 Version: 1.10.7
Configured on: Wed, 08 Dec 2021 23:33:27 +0000
Configured by: Debian
Host system: x86_64-pc-linux-gnu
Uname information: Debian
Byte sex: little-endian
Installation point: /usr
Flavor name: serial
그러나, 중요한 것은 Paraview plug-in을 build할 때는 Paraview source code와 함께 제공되는 libhdf5-dev를 링크해서 사용한다는 것이다.
https://gitlab.kitware.com/paraview/paraview/blob/master/Documentation/dev/build.md
"ParaView depends on several open source tools and libraries such as Python, Qt, CGNS, HDF5, etc. Some of these are included in the ParaView source itself (e.g., HDF5), while others are expected to be present on the machine on which ParaView is being built (e.g., Python, Qt)."
그래서, PVESSI plug-in을 위한 cmake파일을 아래와 같이 변경하여 Paraview와 같이 제공되는 HDF5의 버전을 확인하려 했으나, 정보를 제공하지 않는 듯 하다.
cmake_minimum_required(VERSION 3.8)
project(PVESSI)
set(CMAKE_BUILD_TYPE RELEASE)
include(GNUInstallDirs)
set(BUILD_SHARED_LIBS ON)
set(ParaView_DIR "/home/hp-z8/Downloads/paraview_build")
find_package(ParaView REQUIRED)
message("=================")
if(ParaView_FOUND)
message(STATUS "Found ParaView: ${ParaView_VERSION}")
else()
message(STATUS "ParaView not found")
endif()
message("=================")
message(STATUS "Found HDF5: ${Paraview_HDF5_VERSION}")
paraview_plugin_scan(
PLUGIN_FILES "${CMAKE_CURRENT_SOURCE_DIR}/Plugin/paraview.plugin"
PROVIDES_PLUGINS plugins
ENABLE_BY_DEFAULT ON)
paraview_plugin_build(
PLUGINS ${plugins})
~/Downloads/paraview_build/Plugins/PVESSI/build$ cmake ..
=================
-- Found ParaView: 5.12.0-RC1-303-g977b7c7e6b
=================
-- Found HDF5:
-- Configuring done
-- Generating done
-- Build files have been written to: /home/hp-z8/Downloads/paraview_build/Plugins/PVESSI/build
4. 해결됨
- 일단, 링크되는 libhdf5-dev의 버전을 모르니 무작정 API backward compatibility 페이지를 확인해서 적용해 보도록 하자.
- Application Mapping Options가 아래와 같이 제공되는데, 컴파일 과정에서 강제로 HDF5의 특정 API버전을 적용하도록 하는 옵션이다.
- 실제 적용은 h5cc의 command line 실행시 아래와 같이 적용되 되는데,
h5cc -DH5_USE_18_API
- cmake파일을 통해서 이를 적용하려면, cmake에서 제공하는 add_definitions( ) 함수를 사용하면 된다고 한다.
https://cmake.org/cmake/help/latest/command/add_definitions.html
add_definitions — CMake 3.28.1 Documentation
add_definitions Add -D define flags to the compilation of source files. add_definitions(-DFOO -DBAR ...) Adds definitions to the compiler command line for targets in the current directory, whether added before or after this command is invoked, and for the
cmake.org
https://www.tuwlab.com/ece/27260#google_vignette
[CMake 튜토리얼] 2. CMakeLists.txt 주요 명령과 변수 정리 - ECE - TUWLAB
▶ 이 글에서는 CMake 빌드 스크립트인 CMakeLists.txt 파일을 작성하는 방법에 대해 다룹니다. CMake 2.8.x 버전 기준이며, C언어 프로젝트를 기준으로 자주 사용되는 명령과 변수들을 선별하여 기능에
www.tuwlab.com
- 그래서, 아래와 같이 PVESSI plug-in의 cmake파일을 수정하면,
cmake_minimum_required(VERSION 3.8)
project(PVESSI)
set(CMAKE_BUILD_TYPE RELEASE)
include(GNUInstallDirs)
set(BUILD_SHARED_LIBS ON)
set(ParaView_DIR "/home/hp-z8/Downloads/paraview_build")
find_package(ParaView REQUIRED)
message("=================")
if(ParaView_FOUND)
message(STATUS "Found ParaView: ${ParaView_VERSION}")
else()
message(STATUS "ParaView not found")
endif()
message("=================")
#Options for HDF5
add_definitions(-DH5_USE_18_API)
paraview_plugin_scan(
PLUGIN_FILES "${CMAKE_CURRENT_SOURCE_DIR}/Plugin/paraview.plugin"
PROVIDES_PLUGINS plugins
ENABLE_BY_DEFAULT ON)
paraview_plugin_build(
PLUGINS ${plugins})
- 실행해 보자
~/Downloads/paraview_build/Plugins/PVESSI/build$ cmake ..
-- The C compiler identification is GNU 7.5.0
-- The CXX compiler identification is GNU 7.5.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Found X11: /usr/include
-- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so
-- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so - found
-- Looking for gethostbyname
-- Looking for gethostbyname - found
-- Looking for connect
-- Looking for connect - found
-- Looking for remove
-- Looking for remove - found
-- Looking for shmat
-- Looking for shmat - found
-- Looking for IceConnectionNumber in ICE
-- Looking for IceConnectionNumber in ICE - found
-- Found MPI_C: /usr/lib/x86_64-linux-gnu/openmpi/lib/libmpi.so (found version "3.1")
-- Found MPI: TRUE (found version "3.1") found components: C
-- Found OpenGL: /usr/lib/x86_64-linux-gnu/libOpenGL.so found components: OpenGL GLX
-- Found Python3: /usr/bin/python3.10 (found suitable version "3.10.12", minimum required is "3.10") found components: Interpreter Development.Module Development.Embed
=================
-- Found ParaView: 5.12.0-RC1-303-g977b7c7e6b
=================
-- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY
-- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY - Success
-- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY
-- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY - Success
-- Performing Test COMPILER_HAS_DEPRECATED_ATTR
-- Performing Test COMPILER_HAS_DEPRECATED_ATTR - Success
-- Configuring done
-- Generating done
-- Build files have been written to: /home/hp-z8/Downloads/paraview_build/Plugins/PVESSI/build
- make파일이 생겼다. make하면,
~/Downloads/paraview_build/Plugins/PVESSI/build$ make
[ 7%] Generating the wrap hierarchy for PVESSIReaders
[ 7%] Built target PVESSIReaders-hierarchy
[ 14%] Building CXX object Plugin/Reader/CMakeFiles/PVESSIReaders.dir/vtkPVESSIReader.cxx.o
/home/hp-z8/Downloads/paraview_build/Plugins/PVESSI/Plugin/Reader/vtkPVESSIReader.cxx: In member function ‘void vtkPVESSIReader::Domain_Initializer(int)’:
/home/hp-z8/Downloads/paraview_build/Plugins/PVESSI/Plugin/Reader/vtkPVESSIReader.cxx:2272:32: warning: passing NULL to non-pointer argument 1 of ‘herr_t vtkhdf5_H5Eset_auto2(hid_t, H5E_auto2_t, void*)’ [-Wconversion-null]
H5Eset_auto (NULL, NULL, NULL); // To stop HDF% from printing error message
^
/home/hp-z8/Downloads/paraview_build/Plugins/PVESSI/Plugin/Reader/vtkPVESSIReader.cxx: In member function ‘void vtkPVESSIReader::Update_Time_Steps()’:
/home/hp-z8/Downloads/paraview_build/Plugins/PVESSI/Plugin/Reader/vtkPVESSIReader.cxx:3026:31: warning: passing NULL to non-pointer argument 1 of ‘herr_t vtkhdf5_H5Eset_auto2(hid_t, H5E_auto2_t, void*)’ [-Wconversion-null]
H5Eset_auto (NULL, NULL, NULL); // To stop HDF5 from printing error message
^
[ 21%] Linking CXX static library ../../lib/PVESSIReader/libPVESSIReaders.a
[ 21%] Built target PVESSIReaders
[ 28%] Generating client_server wrapper sources for vtkPVESSIReader
Consolidate compiler generated dependencies of target PVESSIReadersCS
[ 35%] Building CXX object Plugin/CMakeFiles/PVESSIReadersCS.dir/CMakeFiles/PVESSIReadersCS/vtkPVESSIReaderClientServer.cxx.o
[ 42%] Building CXX object Plugin/CMakeFiles/PVESSIReadersCS.dir/CMakeFiles/PVESSIReadersCSInit.cxx.o
[ 50%] Linking CXX static library ../lib/libPVESSIReadersCS.a
[ 50%] Built target PVESSIReadersCS
[ 57%] Generating server manager headers for PVESSIReader_server_manager_modules.
[ 57%] Built target PVESSIReader_server_manager_modules_xml_content
[ 64%] Generating documentation for PVESSIReader_doc
[ 64%] Built target PVESSIReader_doc
[ 71%] Compiling Qt help for PVESSIReader
[ 71%] Built target PVESSIReader_qch
[ 78%] Generating header for PVESSIReader documentation
[ 85%] Building CXX object Plugin/CMakeFiles/PVESSIReader.dir/PVESSIReaderPlugin.cxx.o
[ 92%] Linking CXX shared module ../lib/PVESSIReader/PVESSIReader.so
[100%] Built target PVESSIReader
- Oh yes!
~/Downloads/paraview_build/Plugins/PVESSI/build$ ls
CMakeCache.txt CMakeFiles cmake_install.cmake lib Makefile Plugin
~/Downloads/paraview_build/Plugins/PVESSI/build$ cd lib
~/Downloads/paraview_build/Plugins/PVESSI/build/lib$ ls
libPVESSIReadersCS.a PVESSIReader
~/Downloads/paraview_build/Plugins/PVESSI/build/lib$ cd PVESSIReader
~/Downloads/paraview_build/Plugins/PVESSI/build/lib/PVESSIReader$ ls
cmake libPVESSIReaders.a PVESSIReader.so vtk
'REAL-ESSI' 카테고리의 다른 글
gmESSI의 컴파일 (0) | 2024.01.25 |
---|