我有一个处理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 错误:模块“toolset”中的规则“h5c ++。init”未知。
我知道除非我指定一些东西,或者重建Boost以支持h5c ++,否则它将无法工作,但我不知道如何做到这一点。
答案 0 :(得分:1)
经过一整天的努力,我想出了一个解决方案。
其次,根据您在第一步中找到的内容。定义变量 H5FLAGS 和 H5LIB 。在我的情况下是
常量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