2017-04-25 3 views
0

내 C++ 프로그램에서 HDF5 라이브러리를 사용하고 싶습니다. 저는 VS 2010 x64 컴파일러와 CMake 3.8.0rc2를 Windows 7에서 사용하고 있습니다. 제가 설치 한 HDF5 버전은 1.8.10입니다 (공식 "Installer"를 실행하여 설치).Windows에서 CMake로 HDF5 라이브러리 사용 (오류 : "HDF5를 찾을 수 없음")

Could NOT find HDF5 (missing: HDF5_LIBRARIES) 

나는 또한 환경 변수 HDF5_DIRHDF5_ROOT 두 점을 추가 : 구성에

FIND_PACKAGE (HDF5 REQUIRED) 
INCLUDE_DIRECTORIES (${HDF5_INCLUDE_DIRS}) 
SET (HDF5_LIBS ${HDF5_LIBS} ${HDF5_LIBRARIES}) 
... 
target_link_libraries(${PROJECT_NAME} ${Boost_LIBRARIES} ${HDF5_LIBS}) 

CMake 다음과 같은 오류 메시지를 보여줍니다 내 CMakeLists 파일에서

, 나는 다음과 같은 라인을 추가 내 HDF5 설치 폴더 C:\Develop\HDF5\1.8.10.

CMake가 HDF5 설치를 인식하도록하려면 무엇이 부족합니까?

답변

0

오래된 HDF5 버전을 사용하고있었습니다. 현재 버전은 HDF5-1.8.18입니다.

불행히도, VS 2010 x64 생성기가 CMake-hdf5-1.8.18 아카이브에 없습니다. 단지 VS 2012, 2013 및 2015 비록 다른 발전기를 추가 할 수 있습니다에 대한 .bat 파일이 있습니다 this 웹 사이트에서 즉 HDF5 다운로드 웹 사이트에서

  1. 다운로드 CMake 아카이브. 설치할 버전을 선택하십시오. 비주얼 스튜디오 2010의 x64 용 IE 원하는 발전기에 대한 또 다른 elseif 추가 HDF5config.cmake
  2. 검색 CTEST_CMAKE_GENERATOR
  3. 에 대한
  4. 파일 열기 : elseif(${BUILD_GENERATOR} STREQUAL "VS201064") set(CTEST_CMAKE_GENERATOR "Visual Studio 10 2010 Win64")
  5. 다른 박쥐 파일을 만듭니다, 즉 build-VS2010-64.bat
  6. 는 BUILD_GENERATOR 값을 교체 HDF5config.cmake file에서 선택한 하나, 즉 ctest -S HDF5config.cmake,BUILD_GENERATOR=VS201064 -C Release -V -O hdf5.log
  7. .bat 파일을 실행하십시오.
  8. 컴파일하는 동안 생성 된 USING_HDF5_CMake.txt 그게 전부 같이
  9. 내장 HDF5 설치 폴더 그 후 .\build\_CPack_Packages\win64

에서 사용할 수 나는 원래의 질문에 표시된 CMakeLists 라인을 변경했습니다. C++ 프로젝트가 있기 때문에 구성 요소 목록에서 CCXX으로 변경했습니다.

set (LIB_TYPE STATIC) # or SHARED 
string(TOLOWER ${LIB_TYPE} SEARCH_TYPE) 

find_package (HDF5 NAMES hdf5 COMPONENTS CXX ${SEARCH_TYPE}) 
# find_package (HDF5) # Find non-cmake built HDF5 
INCLUDE_DIRECTORIES (${HDF5_INCLUDE_DIR}) 
set (LINK_LIBS ${LINK_LIBS} ${HDF5_CXX_${LIB_TYPE}_LIBRARY}) 
관련 문제