【问题标题】:HDF5 linking errorHDF5 链接错误
【发布时间】:2018-10-07 03:25:59
【问题描述】:

链接我的hdf5 代码时,我收到以下错误。任何想法我做错了什么。

我正在使用的命令:

g++ -std=c++11 -m64 -DOPENFOAM_PLUS=1712 -Dlinux64 -DWM_ARCH_OPTION=64 -DWM_DP -DWM_LABEL_SIZE=32 -Wall -Wextra -Wold-style-cast -Wnon-virtual-dtor -Wno-unused-参数 -Wno-invalid-offsetof -Wno-attributes -O3 -DNoRepository -ftemplate-depth-100 -I/opt/software/OpenFOAM/OpenFOAM-v1712/src/finiteVolume/lnInclude -I/opt/software/OpenFOAM/OpenFOAM- v1712/src/sampling/lnInclude -I/opt/software/OpenFOAM/OpenFOAM-v1712/src/meshTools/lnInclude -IlnInclude -I。 -I/opt/software/OpenFOAM/OpenFOAM-v1712/src/OpenFOAM/lnInclude -I/opt/software/OpenFOAM/OpenFOAM-v1712/src/OSspecific/POSIX/lnInclude -fPIC -Xlinker --add-needed -Xlinker - -no-as-needed Make/linux64GccDPInt32Opt/3DIBicoFoam_2.o -L/opt/software/OpenFOAM/OpenFOAM-v1712/platforms/linux64GccDPInt32Opt/lib \ -lfiniteVolume -lsampling -L/local/hulfeldl/hdf5/lib/libhdf5_hl_cpp.a -L/local/hulfeldl/hdf5/lib/libhdf5_cpp.a -L/local/hulfeldl/hdf5/lib/libhdf5_hl.a -L/local /hulfeldl/hdf5/lib/libhdf5.a -lhdf5_hl_cpp -lhdf5_cpp -lhdf5_hl -lhdf5 -lsz -lz -ldl -lm -lOpenFOAM -ldl \ -lm -o /local/hulfeldl/OpenFOAM/hulfeldl-v1712/applications/bin/linux64GccDPInt32Opt/3DIBicoFoam_2

错误:

Make/linux64GccDPInt32Opt/3DIBicoFoam_2.o: In function `main':
3DIBicoFoam_2.C:(.text.startup+0x107b): undefined reference to 
`H5::H5Location::openDataSet(std::string const&) const' 
3DIBicoFoam_2.C:(.text.startup+0x17de): undefined reference to 
`H5::H5Location::openDataSet(std::string const&) const'
3DIBicoFoam_2.C:(.text.startup+0x189e): undefined reference to 
`H5::H5Location::openDataSet(std::string const&) const'
3DIBicoFoam_2.C:(.text.startup+0x1919): undefined reference to 
`H5::H5Location::openDataSet(std::string const&) const'
3DIBicoFoam_2.C:(.text.startup+0x19d0): undefined reference to 
`H5::H5Location::openDataSet(std::string const&) const'

【问题讨论】:

  • 您是如何生成该命令的?这是一个巨大的混乱。 -L/local/hulfeldl/hdf5/lib/libhdf5.a 意义不大。 -L 添加库搜索目录。请先删除所有-L/...a。在命令中添加一个 -L/local/hulfeldl/hdf5/lib leave all -lhdf...。然后重试。
  • 谢谢。现在它正在编译。但是当我执行时,我得到:加载共享库时出错:libhdf5_hl_cpp.so.100:无法打开共享对象文件:没有这样的文件或目录
  • 如果是C库,编译器会在函数签名中添加参数。可能是 extern "C" 会解决这个问题

标签: c++ c++11 hdf5


【解决方案1】:

请先删除所有-L/...a。在命令中添加一个-L/local/hulfeldl/hdf5/lib 保留所有-lhdf...。然后重试。

对于运行时,请在运行程序之前运行以下命令。

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/local/hulfeldl/hdf5/lib

【讨论】:

    猜你喜欢
    • 2016-05-20
    • 1970-01-01
    • 2014-03-11
    • 2020-01-10
    • 2016-10-24
    • 2018-03-23
    • 2018-03-03
    • 2015-03-17
    • 2011-10-19
    相关资源
    最近更新 更多