我正在尝试将 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,你就不会遇到这样的问题。
我有文件: 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,你就不会遇到这样的问题。