Требовать boost::dynamic_bitset<> в extconf.rb
Я нахожусь в процессе выпуска моего расширения Ruby C/C++ и пытаюсь удостовериться, что все необходимые библиотеки перечислены в extconf.rb. Я не смог понять, как требовать библиотеку наддува и особенно класс dynamic_bitset<>.
Что я пробовал до сих пор:
# Require used libraries
have_library("stdc++")
have_library("boost", "boost::dynamic_bitset<>")
Несмотря на то, что у меня установлен boost, и расширение компилируется отлично, я получаю следующее:
$ ruby extconf.rb
checking for main() in -lstdc++... yes
checking for boost::dynamic_bitset<>() in -lboost... no
Любые идеи о том, как правильно требовать повышения для установки?
1 ответ
dynamic_bitset
не определен в библиотеке, это компонент повышения только для заголовка. Вы можете узнать, какие компоненты повышения этого типа здесь:
http://www.boost.org/doc/libs/1_57_0/more/getting_started/unix-variants.html
Я проверил это, пример на
http://www.boost.org/doc/libs/1_57_0/libs/dynamic_bitset/example/example1.cpp
скомпилировано без каких-либо библиотек:
g++ example1.cpp -o boost_test
Так что вам вообще не нужно искать библиотеку boost, но вы можете искать заголовок boost, используя have_header()
, find_header()
, dir_config()
,
Если вам нужно вдохновение, Google для extconf.rb и boost и have_header, вы можете найти некоторые файлы extconf.rb на github.