当尝试使用hdf5-file格式运行简单程序时,我收到以下消息,并且程序崩溃:
我发现了类似这样的其他问题的帖子,但大多数都涉及linux和python。我将 C ++ (Qt Creator)和 Windows (Windows 7 64bit)与MSVC17 64bit编译器一起使用,因此这些解决方案对我不起作用。
我不明白为什么会发生这种情况,因为我只是下载了HDF5版本1.10.2并安装了它,所以我不知道为什么它说明了1.8.15版本。这可能从哪里来?
我猜“ 库版本”(1.8.15)是我的hdf5.lib
文件的版本,对吗?
“ 标题版本”(1.10.2)是什么意思?我只需在#include <hdf5.h>
中使用#include <H5Cpp.h>
和main.cpp
,然后在hdf5_test_2.pro
(我的项目)文件中添加路径。
这是我的代码:
hdf5_test.pro:
TEMPLATE = app
CONFIG += console c++11
CONFIG -= app_bundle
CONFIG -= qt
SOURCES += \
main.cpp
win32: LIBS += -L'C:/Program Files/HDF_Group/HDF5/1.10.2/lib/' -lhdf5 -lhdf5_cpp -lhdf5_hl_cpp
INCLUDEPATH += 'C:/Program Files/HDF_Group/HDF5/1.10.2/include'
DEPENDPATH += 'C:/Program Files/HDF_Group/HDF5/1.10.2/include'
win32:!win32-g++: PRE_TARGETDEPS += 'C:/Program Files/HDF_Group/HDF5/1.10.2/lib/libhdf5.lib'
else:win32-g++: PRE_TARGETDEPS += 'C:/Program Files/HDF_Group/HDF5/1.10.2/lib/liblibhdf5.a'
main.cpp:
#include <iostream>
#include <hdf5.h>
#include <H5Cpp.h>
using namespace std;
using namespace H5;
int main()
{
hid_t file_id;
herr_t status;
file_id = H5Fcreate("file.h5", H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
status = H5Fclose(file_id);
cout << "Hello World!" << endl;
return 0;
}
我尝试使用的代码示例来自High Level Introduction to HDF5(第16/17页)。
我认为我已经解决了问题:系统上又安装了另一个版本的HDF5(1.8.15)(在安装此PC之前曾使用过此PC)。
我告诉我的程序来链接我的lib(1.10.2)并通过了路径,但是不知何故他找到了先前安装的1.8.15版本。我现在告诉我的程序链接旧版本,并且可以正常工作。
我的hdf5_test_2.pro
(我的项目)现在看起来像这样:
TEMPLATE = app
CONFIG += console c++11
CONFIG -= app_bundle
CONFIG -= qt
SOURCES += \
main.cpp
win32: LIBS += -LC:/Anaconda2/Library/lib/ -lhdf5 -lhdf5_cpp
INCLUDEPATH += C:/Anaconda2/Library/include
DEPENDPATH += C:/Anaconda2/Library/include
到目前为止很好,但是我现在收到这两个警告:
任何想法,这意味着什么?