/ / Vyžadovať podporu :: dynamic_bitset <> v súbore extconf.rb - ruby, gem, extconf.rb

Vyžadovať zvýšenie :: dynamic_bitset <> v extconf.rb - ruby, gem, extconf.rb

Momentálne vydávam svoj Ruby C / C ++rozšírenie a pokúste sa zabezpečiť, aby všetky požadované knižnice boli uvedené v súbore extconf.rb. Nepodarilo sa mi prísť na to, ako vyžadovať podpornú knižnicu a najmä triedu dynamic_bitset <>.

To, čo som doteraz skúšal:

# Require used libraries
have_library("stdc++")
have_library("boost", "boost::dynamic_bitset<>")

Aj keď mám nainštalovanú podporu a rozšírenie sa perfektne kompiluje, zobrazuje sa mi toto:

$ ruby extconf.rb
checking for main() in -lstdc++... yes
checking for boost::dynamic_bitset<>() in -lboost... no

Máte nejaké nápady, ako správne vyžadovať inštaláciu zosilnenia?

odpovede:

0 pre odpoveď č. 1

dynamic_bitset nie je definovaný v knižnici, je to podporná súčasť iba pre hlavičku. Tu môžete zistiť, ktoré komponenty zosilnenia sú tohto typu:

http://www.boost.org/doc/libs/1_57_0/more/getting_started/unix-variants.html#header-only-libraries

Vyskúšal som to, príklad na

http://www.boost.org/doc/libs/1_57_0/libs/dynamic_bitset/example/example1.cpp

zostavené bez akýchkoľvek knižníc:

g++ example1.cpp -o boost_test

Takže vôbec nemusíte hľadať knižnicu zosilnenia, ale možno budete chcieť hľadať hlavičku zosilnenia pomocou have_header(), find_header(), dir_config().

Ak potrebujete inšpiráciu, vyhľadajte google pre extconf.rb a boost a have_header, na github nájdete nejaké súbory extconf.rb.