2009-08-31 18 views
19

32 bitlik bir Gçlendirme yapısını GCC ile nasıl zorlayabilirim? Şu anda benim user-config.jam bu çizgiyi koyarak teşebbüs, ancak çalışmıyor:GCC ile 32 bitlik bir Oluşturma zorlamasını nasıl zorlayabilirim?

using gcc : 4.1.2 : g++ : compileflags="-m32" ; 
+0

o bjam kullanarak oluşturmak için, ben bunu düşünüyorum: bjam adres modeli = 32 architecture = x86 –

+0

Bu bir Linux sisteminde mi…? Ben genellikle 'setarch i686 make' veya benzeri kullanarak hile yapıyorum. Özellikle de Boost için çalışıp çalışmadığını bilmiyorum. (Ve bu durumda, işletim sisteminiz için 32 bitlik bir ikili dosyayı indirebilirsiniz, bu yüzden belki de başka bir sistemde olduğunuzu tahmin ediyorum.) – BRFennPocock

cevap

25

Eğer 1.40 Boost ++ C kullanıyorsanız, kullanın: yükseltmeyi düşünmelisiniz, eariler sürümünü kullanıyorsanız

bjam address-model=32 

. Eğer

bjam address-model=32 architecture=x86 

kullanamıyorsanız Ben de Bu cevap benim için çalışan bir çözüm için bana yardımcı fine manual

+11

Ah evet ... bu "ince el kitabı" harika. Sağladıkları tüm örnekleri seviyorum. (Sarcasm) –

+1

Yamalar kabul edilir. Ancak, yukarıdaki URL'de listelenen her bir özellik için tam olarak bir komut gibi örnek ekleyerek, belgelerin boyutunu şişirmekten başka bir şey yapamayacağından tam olarak emin değilim. –

+2

"gcc" 64 bit sürümünüz varsa, @AndrewMeadows yanıtına göz atmanız gerektiğini unutmayın. – ereOn

18

bakmak öneririz. Sonunda 64-bit debian boost_1_43_0 32-bit sürümünü derlemeye çalışırken edildi ve bu geldi:

./bjam     \ 
    cflags=-m32   \ 
    cxxflags=-m32  \ 
    address-model=32  \ 
    threading=multi  \ 
    architecture=x86  \ 
    instruction-set=i686 \ 
    stage 
+1

Ayrıca, derleyiciyi değiştirmek isterseniz, derleyici sürümünüzü gost:: g ++ - 4.4 kullanarak emin olarak boost direktörünün 'project-config.jam' veya 'user-config.jam' yoluyla belirtebilirsiniz. '(64 bit linux üzerinde Matlab MEX (32-bit) dosyaları ile Boost derleme için 4.4 belirtilen) kullanılır. – eacousineau

+0

Teşekkürler Andrew, çok yararlı cevap! –

İlgili konular