2011-08-04 8 views
6

Tak więc wiem, że biblioteki doładowania są głównie nagłówkowe, ale istnieje kilka, które wymagają kompilacji, na przykład Boost.Thread. W Darwin, jak mogę je skompilować i przekazać flagę -m32, aby mogły zostać skompilowane do 32-bitowego (i386) pliku binarnego? Jest ta sprawa z Jamroot, o której nigdy nie słyszałem i nie mam pewności, od czego zacząć.przekazywanie flag kompilatora w celu zwiększenia bibliotek (takich jak wątek), które wymagają kompilacji.

Wyjaśnienie: Nie pytam, jak skompilować program z flagą -m32 i użyć bibliotek doładowania. Pytam, jak skompilować biblioteki Boost z flagą -m32.

+0

http://www.boost.org/doc/libs/1_47_0/more/getting_started/unix-variants.html – Arunmu

+0

-1 za nie przeczytanie oficjalnej dokumentacji wprowadzającej, przepraszam. –

+0

@ArunMu, tak wiem, widziałem tę stronę. To nie odpowiada na moje pytanie. Istnieje kilka flag, które można przekazać do b2, ale żadna z nich nie pozwala na zmianę architektury. Próbowałem spojrzeć na plik Jamroot, ale nie widziałem nigdzie, by określić takie flagi kompilatora. – eeeeaaii

Odpowiedz

5

Aby określić architekturę, dla której należy dokonać kompilacji, określ funkcję architecture podczas wywoływania b2.

Aby określić opcje kompilatora, które nie mają jeszcze wbudowanych funkcji, określ funkcję cxxflags podczas wywoływania b2.

Aby określić opcje linkera, które nie mają jeszcze wbudowanych funkcji, określ funkcję linkflags podczas wywoływania b2.

Wszystkie z nich są wymienione w the Boost.Build docs.

+2

Dzięki. Fakt, że w końcu zorientowałem się, że b2 i bjam są tym samym, co naprawdę pomogło tutaj - użyłem diffa, aby to potwierdzić. Dlaczego dwie identyczne wersje pliku wykonywalnego, z których jedna jest prawie całkowicie nieudokumentowana (b2)? To nie ma dla mnie sensu. Oficjalne dokumenty naprawdę ciężko mi parsować - to miało dużo więcej sensu: http://www.highscore.de/cpp/boostbuild/. Dziękuję za pomoc. – eeeeaaii

+0

@eeeeaaii: "b2" to nowa oficjalna nazwa "bjam". Oznacza to, że są one jednym i tym samym, ale nazwa "bjam" jest już przestarzała. – ildjarn

+1

Co? - nic dziwnego, że byłem tak zdezorientowany przez ostatnie dwa miesiące! – meowsqueak

1

Z tego, co rozumiem i jeśli prawidłowo odczytuję dokumentację, sposobem na zbudowanie konkretnej architektury wzmocnienia jest opcja "adres-model = xx" dla b2.

PRZYKŁADY:

b2 install toolSET=msvc-9.0 link=shared variant=release address-model=64 

lub

b2 install toolSET=msvc-9.0 link=shared variant=release address-model=32 

nadzieję, że pomoże.

Pozdrawiam,

-RMWChaos

EDIT: Znaleziono kolejny SO wątek zapewniając tę ​​samą odpowiedź here.

Powiązane problemy