2016-06-09 90 views
1

我有一個處理HDF5文件的C++程序,所以在編譯它時,實際上我需要使用編譯器h5C++而不是g ++。現在我想爲這個C++程序創建一個Boost.Python綁定。所以我跟着the Boost.Build instructions創建了Jamfiles。現在,我通過使用HDF5構建Boost Python

b2 toolset=h5c++ 

調用構建系統和錯誤是

h5c++.jam: No such file or directory /home/kevin/apps/sources/boost_1_57_0/tools/build/src/build/toolset.jam:43: in toolset.using ERROR: rule "h5c++.init" unknown in module "toolset".

我知道,除非我指定的東西,或重建加速,支持H5C++它不會工作,但我只是不如何做到這一點的線索。

回答

1

試了一整天之後,我想出了一個解決方案。

  • 首先,h5C++提供了一個標誌選項'-show',它使您能夠找出h5C++實際鏈接到的庫。
  • 其次,根據您在第一步中找到的內容。定義變量H5FLAGSH5LIB。在我的情況是

    恆定H5FLAGS: 「-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_BSD_SOURCE -D_FORTIFY_SOURCE = 2 -fstack保護器--param = SSP-緩衝器大小= 4 -Wformat -Werror =格式的安全性」;

    恆定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 -W1,-Bsymbolic-functions-W1,-z,relro -lpthread -lz -ldl -lm -Wl ,-rpath -Wl,/ usr/lib/x86_64-linux-gnu「;

  • 三,添加以下規則到大樓設有

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

現在是時候觸發建築系統

b2