【发布时间】:2017-08-23 07:59:43
【问题描述】:
我需要创建一个 HDF5 文件。我正在使用 H5Cpp.h 头文件。 我正在尝试在 OSX 10.11 El Capitan 上编译下面的 C++ 代码。
#include "include/hdf5-1.10.0-patch1/c++/src/H5Cpp.h"
using namespace H5;
const int NX = 5;
const int NY = 5;
const H5std_string FILE_NAME( "SDS.h5" );
const H5std_string DATASET_NAME( "IntArray" );
int main(){
int i, j;
int data[NX][NY]; // buffer for data to write
for (j = 0; j < NX; j++){
for (i = 0; i < NY; i++)
data[j][i] = i + j;
}
H5File file(FILE_NAME, H5F_ACC_TRUNC);
hsize_t dimsf[2] = {NX, NY};
DataSpace dataspace(2, dimsf);
DataSet dataset = file.createDataSet(DATASET_NAME, PredType::NATIVE_INT,
dataspace);
// Attempt to write data to HDF5 file
dataset.write(data, PredType::NATIVE_DOUBLE);
return 0;
}
我一直收到这个错误,
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [all] Error 1
这是详细的输出 - https://gist.github.com/gkarthik/e21d2f83baffc2d2eb1b883696c44df8
谢谢!
【问题讨论】:
-
您使用的是什么版本的 HDF5?我想你必须自己编译 HDF5 库才能在 Mac 上使用它。在 HDF5 网页上,我只看到 Windows 和 linux 的预构建二进制文件。