Pytanie Korzystanie z Boost na ubuntu


W przeszłości słyszałem wiele dobrych komentarzy na temat Boost i sądziłem, że spróbuję. Pobrałem więc wszystkie wymagane pakiety z menedżera pakietów w Ubuntu 9.04. Teraz mam problem ze znalezieniem sposobu korzystania z bibliotek cnót.

Czy ktoś wie o dobrym tutorialu na temat Boost, który przechodzi od Hello World do Advanced Topics, a także opisuje, jak skompilować programy używając g ++ na Ubuntu?


14
2018-05-11 02:45


pochodzenie




Odpowiedzi:


Zgoda; strona doładowania ma dobre tutoriale w przeważającej części, w podziale na pod-biblioteki.

Jeśli chodzi o kompilowanie, dobre 80% implementacji biblioteki jest zdefiniowane w plikach nagłówkowych, dzięki czemu kompilacja jest banalna. na przykład, jeśli chcesz użyć shared_ptr, po prostu dodaj

#include <boost/shared_ptr.hpp>

i kompilować jak zwykle. Nie trzeba dodawać ścieżek do biblioteki do polecenia g ++ ani określać -llibboost. Dopóki katalog boost znajduje się na ścieżce dołączania, wszystko jest gotowe.

Z dokumentacji doładowania:

Jedyne biblioteki, które wymagają kompilacji i połączenia są następujące: Jedyne biblioteki Boost, które muszą być zbudowane osobno, to:

  • Boost.Filesystem
  • Boost.IOStreams
  • Boost.ProgramOptions
  • Boost.Python (zobacz dokumentację kompilacji Boost.Python przed jej zbudowaniem i zainstalowaniem)
  • Boost.Regex
  • Zwiększenie.Serializacja
  • Boost.Signals
  • Boost.Thread
  • Boost.Wave

Kilka bibliotek ma opcjonalne oddzielnie kompilowane pliki binarne:

  • Boost.DateTime ma binarny komponent, który jest potrzebny tylko wtedy, gdy używasz jego funkcji to_string / from_string lub serialization, lub gdy kierujesz się na Visual C ++ 6.x lub Borland.
  • Boost.Graph ma również komponent binarny, który jest potrzebny tylko wtedy, gdy zamierzasz parsować pliki GraphViz.
  • Boost.Test może być używany w trybie "tylko nagłówek" lub "osobno skompilowany", chociaż zaleca się osobną kompilację do poważnego użytku.

Tak więc, jeśli używasz jednej z wymienionych bibliotek, użyj Przewodnik wprowadzający dobrze, zacznij od kompilowania i łączenia z Boost.


16
2018-05-11 03:20





Strona internetowa Boost ma kilka dobrych tutoriali, są one po prostu rodzaj ukryty.


5
2018-05-11 02:50





Dokumentacja biblioteczna jest mieszaną torbą. Niektóre są dobre, ale niektóre są bardziej odniesieniami niż przewodnik. Najlepszym przewodnikiem do (niektórych) bibliotek Boost jest książka Poza standardową biblioteką C ++. Przynajmniej wprowadzenie zawiera opis jednego akapitu wielu bibliotek. Stamtąd możesz zdecydować, która biblioteka jest najważniejsza dla Twoich aktualnych potrzeb, a jeśli jest w książce, przeczytaj rozdział na ten temat lub przeczytaj dokumentację na stronie.

Jeśli czytasz niemiecki, istnieje dobry przewodnik online. Przetłumaczenie Google to wystarczająco dobra praca, że ​​osoba nie mówiąca, taka jak ja, może ją zrozumieć.

Poza tym, jeśli nie masz dużego doświadczenia z C ++, zacznę od prostszych bibliotek (np. Smart_ptr, tuple, conversion, tokenizer, regex, date_time, test), zanim spróbuję bardziej skomplikowanych (bind, variant, any), lub te naprawdę zaawansowane (koncepcje, MPL, Fusion).


3
2018-05-11 15:21





Używając Easypeasy 1.1 (dla netbooków) opartego na Ubuntu, mogłem użyć Menedżera pakietów Synaptic, aby zainstalować, jak sądzę, libboost-dev. Następnie po prostu dodaj:

#include "boost/foreach.hpp"

Mogłem zastąpić istniejące linie w istniejącej aplikacji (która ma klasę Ask, która nie ma nic wspólnego z doładowaniem):

for (std::vector<Ask*>::iterator ii=ui.begin(); ii!=ui.end(); ++ii)
    std::cout << (*ii)->prompt() << (*ii)->answer() << std::endl;

z:

BOOST_FOREACH (Ask* ii, ui)
     std::cout << ii->prompt() << ii->answer() << std::endl;

Jak rozumiem, jest to funkcja tylko nagłówkowa. Nie korzystałem jeszcze z niczego, co wymagało zmiany czasu połączenia.


3
2018-05-24 14:08





Właśnie patrzyłem na tego niemieckiego przewodnika, i okazało się, że jest język angielski jeden również (ta sama książka). Wygląda całkiem nieźle, właśnie przeczytałem wstępne strony, które są całkiem przydatne


1
2018-05-06 21:23





Najlepszym samouczkiem, jaki do tej pory przeczytałem, są te dwie książki:


0
2018-05-07 02:51





Biblioteki są dostarczane wraz z dokumentacją, a wiele z nich posiada samouczki w ramach dokumentacji. Po prostu zacznij czytać.


-2
2018-05-11 02:49



Gdzie są pliki Boost przechowywane na moim komputerze. Nie pobrałem ich z witryny internetowej Boost. - Kredns
możesz znaleźć lokalizację plików za pomocą swojego menedżera pakietów. Zwykle jest to / usr / include / boost i / usr / lib / libboost_ * - Johannes Schaub - litb
Ale używając samouczka, który dał mi idiom, nie skompiluje się. Czy mimo to mogę korzystać z funkcji g ++ 's backtick? - Kredns


Boost nie jest językiem programowania ani ramą aplikacji - ponieważ jest to po prostu biblioteka bibliotek, nie ma czegoś takiego jak program Boost "Hello World". Większość bibliotek w Boost może być wykorzystywana mniej lub bardziej niezależnie, i różnią się one wielkością od jednej funkcji do ogromnych bibliotek, które mogą być samodzielne.

Najlepszym sposobem na poznanie Boost jest po prostu wypróbowanie go podczas pisania nowego kodu. Posługiwać się smart_ptr kiedy tylko możesz; użyj MPL następnym razem, gdy chcesz pracować w trybie kompilacji. W Boost jest wiele odmian, ale prawdopodobnie powinieneś zacząć przeglądać sekcję Utility; są to najlżejsze i najczęściej używane biblioteki.


-2
2018-05-11 08:01



Uzasadnienie głosowania w dół: "Hello World" może oznaczać pierwszy, wyjątkowo prosty przykład, który łączy wszystkie instalacje hydrauliczne. Oryginalny program "Hello World" C wymaga, aby mieć dostęp do komputera, utworzyć źródło programu, zapisać, skompilować, połączyć, uruchomić i zbadać wyniki. - C.W.Holeman II