gpt4 book ai didi

c++ - 使用静态链接编译 hdf5 项目

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:44:46 26 4
gpt4 key购买 nike

我正在尝试编译和链接一个使用 HDF5 库的项目。我正在使用 Windows 10、VS2015(C++ 编译器)和 CMake。我在链接过程中遇到问题并收到很多错误,例如

libhdf5_cpp.lib(H5Attribute.obj) : error LNK2001: unresolved external symbol _H5open

我正在编译一个 32 位应用程序,我使用 HDF5 包的 32 位预构建二进制文件。链接器正在尝试链接 libhdf5_cpp.lib 文件(根据 HDF5 主页,该文件应该是静态库)。我在编译过程中尝试了 Release 和 Debug 两种模式。我也尝试过动态链接,这导致了相同的错误消息。

我现在已经花了很多时间解决这个问题,我不确定自己能否在合理的时间内解决这个问题。有没有人对 hot 进行有什么好的建议?

是的,CMake 脚本和编译在 Linux 下运行良好,所以我猜它在某种程度上与 VS 相关。

最佳答案

对于我的问题,首先,我下载适用于 Windows 64 的预构建 HDF5。Visual Studio 2015我发现有两种类型的 .lib 文件一个以前缀“lib”开头,另一个以前缀“lib”开头

enter image description here

我不明白其中的不同。

一开始,我链接到 C++ 的所有 .lib 文件(不要使用 f90 fortran JAVA ...)

编译器说有重复的符号。然后我只链接 hdf5.lib ... hdf5_cpp.lib(没有单词“lib”)在前面。然后编译器说“Undefied external symbol”QT pro 上的命令是

INCLUDEPATH +=   "C:/Program Files/HDF_Group/HDF5/1.10.2/include"
LIBS += -L"C:/Program Files/HDF_Group/HDF5/1.10.2/lib"

LIBS += -lhdf5
LIBS += -lhdf5_cpp
LIBS += -lhdf5_hl
LIBS += -lhdf5_hl_cpp
LIBS += -lhdf5_tools
LIBS += -lszip
LIBS += -lzlib

...这产生了与您相同的问题。 “编译错误”

之后我链接到libhdf5.lib , libhdf5_cpp.lib...QT pro 上的命令是

INCLUDEPATH +=   "C:/Program Files/HDF_Group/HDF5/1.10.2/include"
LIBS += -L"C:/Program Files/HDF_Group/HDF5/1.10.2/lib"
LIBS += -llibhdf5
LIBS += -llibhdf5_cpp
LIBS += -llibhdf5_hl
LIBS += -llibhdf5_hl_cpp
LIBS += -llibhdf5_tools
LIBS += -llibszip
LIBS += -llibzlib

而且有效。

关于c++ - 使用静态链接编译 hdf5 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41167645/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com