【问题标题】:Build Boost Python with HDF5使用 HDF5 构建 Boost Python
【发布时间】:2016-06-09 14:48:54
【问题描述】:

我有一个处理 HDF5 文件的 C++ 程序,所以在编译它时,实际上我需要使用编译器 h5c++ 而不是 g++。现在我想为这个 C++ 程序创建一个 Boost.Python 绑定。所以我关注the Boost.Build instructions 并创建了 Jamfiles。现在我通过

调用构建系统
b2 toolset=h5c++

错误是

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

我知道除非我指定某些内容或重建 Boost 以支持 h5c++,否则它将无法工作,但我只是不知道如何去做。

【问题讨论】:

    标签: c++ boost hdf5 boost-python


    【解决方案1】:

    尝试了一整天后,我想出了一个解决方案。

    • 首先,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" ;

      常量 H5LIB : "-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-functions -Wl,-z,relro -lpthread -lz -ldl -lm -Wl, -rpath -Wl,/usr/lib/x86_64-linux-gnu" ;

    • 第三,在建筑特征中添加如下规则

      <cxxflags>"$(H5FLAGS)" <linkflags>"$(H5LIB)"

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

    b2
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-18
      • 2015-05-04
      • 2023-03-09
      • 1970-01-01
      • 1970-01-01
      • 2014-01-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多