我正在尝试将 link hdf5 转换为 C++ 代码 (Mac)

I'm trying to link hdf5 to c++ code (Mac)

我有文件: main.cpp、tools.cpp、tools.h、integrator.cpp 和 integrator.h。

我已经尝试 link HDF5 到此代码(它 compiles/links 没有 hdf5 东西就很好)。

这是我用来编译的:

g++ -Wall -Werror -pedantic -std=c++1y -I /usr/local/include -L/usr/local/lib -lhdf5 -lhdf5_hl -lhdf5_cpp  main.cpp tools.cpp integrator.cpp 

我得到的错误对我来说完全是胡说八道:

  "__ZN2H56H5FileC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEjRKNS_17FileCreatPropListERKNS_15FileAccPropListE", referenced from:
      _main in cc76aLiD.o
ld: symbol(s) not found for architecture x86_64
collect2: error: ld returned 1 exit status

但是,果然,如果我在我的代码中删除所有 HDF5 命令,但将 #include "H5Cpp.h" 保留在 main.cpp 的顶部,它就可以工作。这对我来说似乎很奇怪,因为我认为它也会在这里失败?

有人有什么建议可以尝试吗? 如果相关,我正在使用 Mac。谢谢!

也许您还想要 link 和 -lhdf5_hl_cpp。如果你像我今天建议的那样使用cmake,你就不会遇到这样的问题。