我在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.但是我看不到这个标志。 有人可以帮我解决这个问题吗?
答案 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打包版本的库(通过apt
,aptitude
,Synaptic ...)而不是自己安装库,这应该确保所有库版本兼容。 / p>