HDF5库segfault(不匹配的标题)

时间:2017-03-20 17:11:20

标签: c++ hdf5 flann

我在ubuntu上安装了flann和libhdf5-serial-dev c ++库。之后,我编译了flann_example.cpp文件没有问题。但是,当我启动可执行文件时,我收到以下错误消息:

  

警告! HDF5库版本不匹配错误   用于编译此应用程序的HDF5头文件不匹配   此应用程序链接到的HDF5库使用的版本。   如果应用程序继续,可能会发生数据损坏或分段错误。   当应用程序由一个版本的HDF5编译时,可能会发生这种情况   链接到不同版本的静态或共享HDF5库。   您应该重新编译应用程序或检查您的共享库   设置如' LD_LIBRARY_PATH'。   您可以自担风险,通过设置环境来禁用此警告   变量' HDF5_DISABLE_VERSION_CHECK'值为' 1'。   将其设置为2或更高将完全抑制警告消息。   标题是1.8.16,库是1.8.7   再见...   放弃(核心倾销)

我使用以下表达式来抑制此警告:

 cmake -HDF5_DISABLE_VERSION_CHECK=1 -H. -Bbuild

但我仍然有这个消息。我用ccmake查找了可选标志HDF5_DISABLE_VERSION_CHECK来检查它是否设置为1.但是我看不到这个标志。 有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

  

您可以自行承担风险,通过设置环境变量' HDF5_DISABLE_VERSION_CHECK'来禁用此警告。值为' 1'。

HDF5_DISABLE_VERSION_CHECK是一个环境变量,而不是编译器#define或CMake变量。将它设置在shell中:

export HDF5_DISABLE_VERSION_CHECK=1
path/to/flann_example

HDF5_DISABLE_VERSION_CHECK=1 path/to/flann_example

但是,您可能在修复根问题(库不匹配)方面要好得多。在Ubuntu上,如果你总是安装Ubuntu打包版本的库(通过aptaptitude,Synaptic ...)而不是自己安装库,这应该确保所有库版本兼容。 / p>