我正在发布我的Ruby C / C ++扩展,并尝试确保extconf.rb中列出了所需的所有库。我无法弄清楚如何要求升级库,尤其是dynamic_bitset<>类。
到目前为止我尝试了什么:
# Require used libraries
have_library("stdc++")
have_library("boost", "boost::dynamic_bitset<>")
即使我已经安装了升级版,并且扩展程序完美编译,我也会得到这个:
$ ruby extconf.rb
checking for main() in -lstdc++... yes
checking for boost::dynamic_bitset<>() in -lboost... no
有关如何正确安装boost的任何想法?
答案 0 :(得分:0)
dynamic_bitset
未在库中定义,它是仅限标头的提升组件。
您可以在此处找到此类型的增压组件:
http://www.boost.org/doc/libs/1_57_0/more/getting_started/unix-variants.html#header-only-libraries
我测试了它,
的例子http://www.boost.org/doc/libs/1_57_0/libs/dynamic_bitset/example/example1.cpp
编译时没有任何库:
g++ example1.cpp -o boost_test
因此,您根本不必查找升级库,但您可能希望使用have_header()
,find_header()
,dir_config()
来查找升级标头。< / p>
如果你需要灵感,google for extconf.rb和boost和have_header,你可能会在github上找到一些extconf.rb文件。