Несовпадение версий библиотеки (C ++ HDF5 Windows)

При попытке запустить простую программу в формате hdf5 я получаю следующие сообщения, и программа вылетает:

введите описание изображения здесь
введите описание изображения здесь

Я нашел сообщения о других проблемах, подобных этой, но большинство из них относятся к Linux и Python. я использую C ++ (Qt Creator) и Windows (Windows 7 64bit) с 64-битным компилятором MSVC17, поэтому эти решения не работают для меня.

Я не понимаю, почему это происходит, потому что я просто загрузил 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;
}

Пример кода, который я пытался использовать, взят из Высокий уровень Введение в HDF5 (Страницы 16/17).


Решено (имеется в виду следующая ошибка)

Думаю, я решил проблему: в системе была установлена ​​другая версия HDF5 (1.8.15) (та, которая использовала этот компьютер до того, как я его установил).

Я сказал моей программе связать мою библиотеку (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

Пока неплохо, но теперь я получаю два предупреждения:

введите описание изображения здесь

Есть идеи, что это значит?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]