2009-10-01 8 views

Odpowiedz

1

Tak, większość bibliotek boost jest tylko nagłówkiem, więc nie trzeba kompilować żadnych plików źródłowych.

2

Większość boostów jest dystrybuowana jako biblioteki "tylko nagłówkowe" - co oznacza, że ​​nie trzeba "kompilować" żadnych rzeczy, aby korzystać z tej biblioteki. Losowe jest jednym z nich, więc można po prostu dołączyć poprawne pliki nagłówkowe, a będziesz się śmiać. Powiedziałbym, że najlepiej jest gdzieś znaleźć całe źródło boost i powołać się na to, ponieważ różne części mają wzajemne zależności.

1

Tak, aby użyć boost::random, można po prostu dołączyć nagłówek do pliku źródłowego.

Ponieważ Boost korzysta z szablonów w znacznym stopniu, wiele bibliotek jest zaimplementowanych wyłącznie w nagłówkach (i plikach implementacji szablonów, a la txx).

Większość bibliotek jest także niezależna, więc można używać tylko jednej bez zależności od drugiej. (Wyjątki są udokumentowane.)

Jeśli spojrzysz na list of Boost libraries zobaczysz wiele z nich oznaczonych etykietą "Tylko nagłówek", więc nie ma żadnej dodatkowej biblioteki do połączenia.

7

Jedyną rzeczą, na którą należy zwrócić uwagę, jest dodanie ścieżki do zwiększenia w ścieżce dołączania. Mimo że biblioteki są tylko nagłówkami, wiele nagłówków doładowania zawiera inne nagłówki w bibliotece boost i nie będzie w stanie ich znaleźć, jeśli nie skonfigurujesz poprawnie ścieżki dostępu.

Mój obecny projekt ten obejmuje ścieżkę:

/I "C:\Program Files\boost\boost_1_39" 

Mój kod zawiera wtedy nagłówki Boost tak:

#include <boost/random.hpp> 

Boost/random.hpp ma kilka wierszy jak #include " boost/random/linear_congruential.hpp ", dlatego potrzebna jest ścieżka dołączania.

0

jak bym go o to i tylko używając tylko tej biblioteki

Nie jestem pewien, co twoim problemem jest tutaj. Nawet jeśli zawarłeś inne nagłówki i/lub połączono inne biblioteki, twój ostateczny plik wykonywalny będzie zawierał tylko te części biblioteki, które są potrzebne do rozwiązania symboli w twoim kodzie. Nie rzuci w nieużywane moduły obiektów. Kod wstawiony i szablony w nagłówkach nie są tworzone, dopóki nie zostaną przywołane.

Ponieważ Boost jest przede wszystkim biblioteką szablonów i do pracy nad brakiem świadomości szablonów w większości łączników, kod jest wstawiany w pliku nagłówkowym, instancjonowane szablony są kompilowane do każdego modułu obiektowego, w którym jest tworzony. Więc możesz skończyć z duplikatem kodu w wielu modułach, które jeśli wykonasz rozmiar, jeśli powinieneś być świadomy.

22

Zwiększono bardzo dobre narzędzie o nazwie bcp, które robi to, co chcesz. Sprawdź to.

od docs:

bcp boost/regex.hpp /foo 

Copies boost/regex.hpp and all dependencies including the regex source code 
(in libs/regex/src) and build files (in libs/regex/build) to /foo. Does not 
copy the regex documentation, test, or example code. 
Powiązane problemy