2010-08-05 17 views
6

Pracuję nad projektem wieloplatformowym (Windows, Linux, Solaris). Chcę użyć Boost's shared_ptr w tym projekcie.Jak dodać impuls do mojego projektu?

Jak mogę go zainstalować i rozpowszechnić w projekcie dla klientów?

Nie mam uprawnień roota w systemie Linux/Solaris, więc prawdopodobnie muszę dodać źródła Boost do moich źródeł i skompilować je razem.

Również nasza wersja Solaris jest bardzo stara (2.5.1, maj 1996). Czy może powodować problemy z budowaniem shared_ptr?

Odpowiedz

4

Wystarczy zainstalować pliki nagłówkowe doładowania (nie trzeba kompilować i instalować bibliotek dla shared_ptr, ponieważ jest to tylko nagłówek). Nie zapomnij sprawdzić, czy ścieżki dostępu do boost znajdują się w twoim IDE, dzięki czemu będą w stanie znaleźć plik nagłówkowy.

W pliku kodu, to ten nagłówek:

#include<boost/shared_ptr.hpp> 

i używać go tak:

boost::shared_ptr<int> ptrToInt (new int); 
4

Nie trzeba uwzględniać źródeł biblioteki Boost (Boost jest dość dużą biblioteką). Wystarczy uwzględnić Boost w swoich wymaganiach wstępnych.

W przypadku redystrybucji projektu w formie binarnej, nie trzeba w ogóle dodawać bibliotek boost.

3

boost::shared_ptr jest tylko nagłówkiem. Po prostu dodaj niezbędne pliki nagłówkowe do projektu i gotowe.

shared_ptr jest również częścią TR1, pierwszego raportu technicznego biblioteki C++ i jest np. zawarte w nowszych wersjach GCC (> = 4.0.0) (więcej informacji można znaleźć w artykule here).

+3

Należy pamiętać, że 'shared_ptr.hpp' zależy od niektórych innych plików nagłówkowych. –

+1

Funkcja Boost jest dostarczana z programem o nazwie 'bcp', który się tym zajmuje. Przejrzy twoje źródło, aby znaleźć pliki nagłówkowe doładowania, których używasz, i rekursywnie je przegląda, aby zbudować minimalny zestaw. Robimy to automatycznie w naszych skryptach kompilacji i działa dobrze. – KeithB

3

Nie trzeba dużo biblioteki Boost prostu użyć shared_ptr. Użyj narzędzia bcp, aby wyodrębnić tylko te bity, od których zależy shared_ptr, co może być lepszym rozwiązaniem niż instalacja pełnej biblioteki.

Powiązane problemy