库版本不匹配(C ++ HDF5 Windows)

时间:2018-07-02 11:03:20

标签: c++ windows version hdf5 mismatch

当尝试使用hdf5-file格式运行简单程序时,我收到以下消息,并且程序崩溃:

enter image description here enter image description here

我发现了类似这样的其他问题的帖子,但大多数都涉及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

到目前为止很好,但是我现在收到这两个警告:

enter image description here

任何想法,这意味着什么?

0 个答案:

没有答案
相关问题