2017-04-25 12 views
0

私のC++プログラムでHDF5ライブラリを使用します。私はVS 2010 x64コンパイラとCMake 3.8.0rc2をWindows 7で使用しています。私がインストールしたHDF5のバージョンは1.8.10です(公式の "インストーラ"を実行してインストールします)。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ファイルだけは他の発電機を追加することが可能であるがあります。

  1. はすなわちthisウェブサイトから、HDF5ダウンロードWebサイトからcmakeのアーカイブをダウンロードしてください。インストールしたいバージョンを用意してください。 CTEST_CMAKE_GENERATOR
  2. ため
  3. ファイルを開くHDF5config.cmake
  4. 検索は、Visual Studio 2010のx64版IE、ご希望の発電機のための別のelseifを追加します。 elseif(${BUILD_GENERATOR} STREQUAL "VS201064") set(CTEST_CMAKE_GENERATOR "Visual Studio 10 2010 Win64")
  5. 別の.batファイルを作成し、すなわち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. 建てHDF5のインストールには、コンパイル時に作成USING_HDF5_CMake.txtのthatsに示したように、私は、元の質問に示すCMakeListsラインを変更したフォルダその後.\build\_CPack_Packages\win64

で利用できるようになります。私は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}) 
関連する問題