c++ - HDF5 - C++ - 打开文件读取内容失败

标签 c++ linker-errors hdf5

我尝试编写一个非常短的脚本来打开一个 hdf5 文件,但它不起作用。

#include <iostream>
#include "H5Cpp.h"

#ifndef H5_NO_NAMESPACE
    using namespace H5;
#endif

const H5std_string FILE_NAME( "testfile.h5" );

int main (void)

{

    H5File openFile( FILE_NAME, H5F_ACC_RDONLY );

}

我很确定我包含了 hdf5 库和包含的路径。 但是尽管如此,我还是从链接器收到了错误消息:

Invoking: GCC C++ Linker
g++ -L/usr/local/pub/lib64 -L/usr/local/pub/lib -L/lib64 -L/usr/lib64 -o "HDF5_CPP"  ./openfile.o   
./openfile.o: In function `main':
/athome/augs_ay/workspace/HDF5_CPP/Debug/../openfile.cpp:18: undefined reference to `H5check_version'
/athome/augs_ay/workspace/HDF5_CPP/Debug/../openfile.cpp:18: undefined reference to `H5::FileAccPropList::DEFAULT'
/athome/augs_ay/workspace/HDF5_CPP/Debug/../openfile.cpp:18: undefined reference to `H5::FileCreatPropList::DEFAULT'
/athome/augs_ay/workspace/HDF5_CPP/Debug/../openfile.cpp:18: undefined reference to `H5::H5File::H5File(std::string const&, unsigned int, H5::FileCreatPropList const&, H5::FileAccPropList const&)'
/athome/augs_ay/workspace/HDF5_CPP/Debug/../openfile.cpp:18: undefined reference to `H5::H5File::~H5File()'
collect2: error: ld returned 1 exit status
make: *** [HDF5_CPP] Error 1

有人可以帮忙吗? 谢谢!

最佳答案

对于那些使用 CMake 的人,这里有一个例子:

( undefined reference 问题在最后一行解决)

find_package(HDF5 COMPONENTS C CXX HL REQUIRED)
link_directories( ${HDF5_LIBRARY_DIRS} )
include_directories( ${HDF5_INCLUDE_DIRS} )
add_executable( convert_to_hdf5 src/convert_to_hdf5.cpp )
target_link_libraries( convert_to_hdf5 ${HDF5_CXX_LIBRARIES} )

关于c++ - HDF5 - C++ - 打开文件读取内容失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22664630/

相关文章:

c++ - 成为左操作数意味着什么?

c++ - 在 C++ 中验证 GPS 字符串的最简单方法?

c++ - 将 C++ 随机数分布传递给函数

ios - 找不到框架,链接器命令失败,退出代码为 1(使用 -v 查看调用)

mysql - MySQL 库中没有初始化函数

python - HDF5格式的时间序列存储

c++ - 不能在 Xcode 中使用 _strdate (c++)

c++ - C++ 中的链接器正在接受具有相同参数和不同返回类型的函数,但我得到 SEGFAULT

amazon-s3 - 在 Amazon EC2、S3 和/或 EBS 上托管和访问 HDF5 文件

python - HDF5 文件内的损坏节点