C++ HDF5 找不到-lhdf5d
C++ HDF5 cannot find -lhdf5d
情况:我想创建一个程序来从 .hdf5
文件中读取内容。
我做了什么: 没什么,只是将 hdf5.lib
添加到项目中。
问题:
我遇到两个错误
当我尝试 运行 程序时。
cannot find -lhdf5d
error: ld returned 1 exit status
我的代码:
HDF5_Test.pro
:
TEMPLATE = app
CONFIG += console c++11
CONFIG -= app_bundle
CONFIG -= qt
SOURCES += \
main.cpp
win32:CONFIG(release, debug|release): LIBS += -L'C:/Program Files/HDF_Group/HDF5/1.10.2/lib/' -lhdf5
else:win32:CONFIG(debug, debug|release): LIBS += -L'C:/Program Files/HDF_Group/HDF5/1.10.2/lib/' -lhdf5d
else:unix: LIBS += -L'C:/Program Files/HDF_Group/HDF5/1.10.2/lib/' -lhdf5
INCLUDEPATH += 'C:/Program Files/HDF_Group/HDF5/1.10.2/include'
DEPENDPATH += 'C:/Program Files/HDF_Group/HDF5/1.10.2/include'
main.cpp
:
#define H5_SIZEOF_SSIZE_T H5_SIZEOF_LONG_LONG //this is needed to avoid redefinition conflict of ssize_t (Qt vs HDF5)
#include <hdf5.h>
#include <H5Cpp.h> //Tried with and without this include
int main()
{
return 0;
}
使用:
- C++
- Qt 5.10.1
- MinGW 32 位
- HDF5 1.10.2
- Windows 7
在另一个项目中,无论出于何种原因,这些错误都不会发生,但是这些。
.
我 linux,使用 apt-get install libhdf5-dev 我们安装了 8 个库,但 none 在其 "nature" 中是 lihdf5。我的意思是我的包含将是 -lhdf5_openmpi
而不是 -lhdf5
。由于您没有提供下载源,请尝试检查您的 /lib
文件
中是否有多个库
我的解决方案是删除此行中的最后一个 "d":
else:win32:CONFIG(debug, debug|release): LIBS += -L'C:/Program Files/HDF_Group/HDF5/1.10.2/lib/' -lhdf5d
意味着我将 -lhdf5d
更改为 -lhdf5
。
This problem was fixed this way but lead to another problem.
情况:我想创建一个程序来从 .hdf5
文件中读取内容。
我做了什么: 没什么,只是将 hdf5.lib
添加到项目中。
问题:
我遇到两个错误
当我尝试 运行 程序时。
cannot find -lhdf5d
error: ld returned 1 exit status
我的代码:
HDF5_Test.pro
:
TEMPLATE = app
CONFIG += console c++11
CONFIG -= app_bundle
CONFIG -= qt
SOURCES += \
main.cpp
win32:CONFIG(release, debug|release): LIBS += -L'C:/Program Files/HDF_Group/HDF5/1.10.2/lib/' -lhdf5
else:win32:CONFIG(debug, debug|release): LIBS += -L'C:/Program Files/HDF_Group/HDF5/1.10.2/lib/' -lhdf5d
else:unix: LIBS += -L'C:/Program Files/HDF_Group/HDF5/1.10.2/lib/' -lhdf5
INCLUDEPATH += 'C:/Program Files/HDF_Group/HDF5/1.10.2/include'
DEPENDPATH += 'C:/Program Files/HDF_Group/HDF5/1.10.2/include'
main.cpp
:
#define H5_SIZEOF_SSIZE_T H5_SIZEOF_LONG_LONG //this is needed to avoid redefinition conflict of ssize_t (Qt vs HDF5)
#include <hdf5.h>
#include <H5Cpp.h> //Tried with and without this include
int main()
{
return 0;
}
使用:
- C++
- Qt 5.10.1
- MinGW 32 位
- HDF5 1.10.2
- Windows 7
在另一个项目中,无论出于何种原因,这些错误都不会发生,但是这些。
我 linux,使用 apt-get install libhdf5-dev 我们安装了 8 个库,但 none 在其 "nature" 中是 lihdf5。我的意思是我的包含将是 -lhdf5_openmpi
而不是 -lhdf5
。由于您没有提供下载源,请尝试检查您的 /lib
文件
我的解决方案是删除此行中的最后一个 "d":
else:win32:CONFIG(debug, debug|release): LIBS += -L'C:/Program Files/HDF_Group/HDF5/1.10.2/lib/' -lhdf5d
意味着我将 -lhdf5d
更改为 -lhdf5
。
This problem was fixed this way but lead to another problem.