0

我在 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。但我看不到这个标志。有人可以帮我解决这个问题吗?

4

1 回答 1

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...)而不是自己安装库,这应该确保所有库版本都是兼容的。

于 2017-03-20T17:57:55.360 回答