使用HDF5构建boostpython 我有一个C++程序,它处理HDF5文件,所以编译时,实际上我需要使用编译器H5C++来代替G++。现在我想为这个C++程序创建一个Boosi.python绑定。因此,我遵循并创建了Jamfiles。现在,我通过 b2 toolset=h5c++

使用HDF5构建boostpython 我有一个C++程序,它处理HDF5文件,所以编译时,实际上我需要使用编译器H5C++来代替G++。现在我想为这个C++程序创建一个Boosi.python绑定。因此,我遵循并创建了Jamfiles。现在,我通过 b2 toolset=h5c++,c++,boost,hdf5,boost-python,C++,Boost,Hdf5,Boost Python,错误是 h5c++.jam:没有这样的文件或目录 /home/kevin/apps/sources/boost_1_57_0/tools/build/src/build/toolset.jam:43:在toolset.using中 错误:模块“工具集”中的规则“h5c++.init”未知 我知道除非我指定一些东西,或者重建Boost以支持h5c++,否则它不会工作,但我只是不知道如何做 经过一整天的努力,我想出了一个解决办法 首先,h5c++提供了一个标志选项“-show”,它使您能够找出h5

错误是

h5c++.jam:没有这样的文件或目录 /home/kevin/apps/sources/boost_1_57_0/tools/build/src/build/toolset.jam:43:在toolset.using中 错误:模块“工具集”中的规则“h5c++.init”未知


我知道除非我指定一些东西,或者重建Boost以支持h5c++,否则它不会工作,但我只是不知道如何做

经过一整天的努力,我想出了一个解决办法

  • 首先,h5c++提供了一个标志选项“-show”,它使您能够找出h5c++实际链接到的库
  • 第二,基于你在第一步中发现的。定义变量H5FLAGSH5LIB。我的情况是

    常数H5FLAGS:“-D_LARGEFILE_SOURCE-D_LARGEFILE64_SOURCE-D_BSD_SOURCE-D_FORTIFY_SOURCE=2-fstack protector--param=ssp buffer size=4-Wformat-Werror=format security”

    常量lib:“-L/usr/lib/x86_64-linux-gnu/usr/lib/x86_64-linux-gnu/libhdf5_hl_cpp.so/usr/lib/x86_64-linux-gnu/libhdf5_cpp.so/usr/lib/x86_64-linux-gnu/libhdf5_hl.so/usr/lib/x86_64-linux-gnu/libhdf5.so-Wl-Bsymbolic函数-Wl、-z、-relz-lpz-Wl-lp-lph-lm-ldl-lh、-h5;-linux-h5u、-hdu-h5u、-h5u、-h5u-h5u”

  • 第三,将以下规则添加到建筑要素中

    “$(H5FLAGS)”“$(H5LIB)”

现在是触发建筑系统的时候了

b2