Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/144.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ HDF5库SEGFULT(标头不匹配)_C++_Hdf5_Flann - Fatal编程技术网

C++ HDF5库SEGFULT(标头不匹配)

C++ HDF5库SEGFULT(标头不匹配),c++,hdf5,flann,C++,Hdf5,Flann,我在Ubuntu上安装了FLANN和LIHDHD5系列DEV C++库。在那之后,我毫无问题地编译了flann_example.cpp文件。但是,当我启动可执行文件时,我收到以下错误消息: 警告HDF5库版本不匹配错误 用于编译此应用程序的HDF5头文件不匹配 此应用程序链接到的HDF5库使用的版本。 如果应用程序继续运行,可能会发生数据损坏或分段错误。 当应用程序由一个版本的HDF5编译,但 链接到不同版本的静态或共享HDF5库。 您应该重新编译应用程序或检查与共享库相关的 设置,如“LD\u

我在Ubuntu上安装了FLANN和LIHDHD5系列DEV C++库。在那之后,我毫无问题地编译了flann_example.cpp文件。但是,当我启动可执行文件时,我收到以下错误消息:

警告HDF5库版本不匹配错误 用于编译此应用程序的HDF5头文件不匹配 此应用程序链接到的HDF5库使用的版本。 如果应用程序继续运行,可能会发生数据损坏或分段错误。 当应用程序由一个版本的HDF5编译,但 链接到不同版本的静态或共享HDF5库。 您应该重新编译应用程序或检查与共享库相关的 设置,如“LD\u库\u路径”。 您可以通过设置环境来禁用此警告,风险由您自己承担 变量“HDF5\u DISABLE\u VERSION\u CHECK”的值为“1”。 将其设置为2或更高将完全抑制警告消息。 标题为1.8.16,库为1.8.7 再见。。。 废弃(堆芯倾倒)

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

 cmake -HDF5_DISABLE_VERSION_CHECK=1 -H. -Bbuild
但我仍然有这个信息。我用ccmake查找可选标志HDF5\u DISABLE\u VERSION\u CHECK,以检查它是否设置为1。但我看不到这面旗帜。 有人能帮我解决这个问题吗

您可以通过将环境变量“HDF5\u disable\u VERSION\u CHECK”设置为值“1”来禁用此警告,风险自负

HDF5\u DISABLE\u VERSION\u CHECK
是一个环境变量,而不是编译器
\define
或CMake变量。在shell中设置它:

export HDF5_DISABLE_VERSION_CHECK=1
path/to/flann_example


但是,修复根本问题(库不匹配)可能会更好。在Ubuntu上,如果您总是安装Ubuntu打包版本的库(通过
apt
aptitude
,Synaptic…),而不是自己安装库,这将确保所有库版本都兼容。

Thx,我将尝试一下。要获取HDF库,我执行以下指令:sudo apt get install libhdf5 serial dev,我收到了这条消息。@axel-您从哪里获取flann?@axel-您使用的是源发行版还是二进制文件?你正在运行哪个版本的Ubuntu?如果您是根据Ubuntu提供的.deb从源代码构建的,您不应该遇到此错误。
HDF5_DISABLE_VERSION_CHECK=1 path/to/flann_example