64 बिट मशीन पर 32 बिट बाइनरी संकलन में परेशानी


13

मैं एसी प्रोग्राम को 64 बिट के बजाय 32 बिट बाइनरी के रूप में संकलित करने की कोशिश कर रहा हूं। मैंने केवल जोड़ना शुरू किया -m32और कुछ त्रुटियां हुईं। एक छोटे से चारों ओर गुगली मैं एक नोट भर में ia32-libs स्थापित करने के लिए आया था। रनिंग apt-get install ia32-libsएक अधिसूचना ताहट के परिणामस्वरूप हुई जो पहले से ही स्थापित थी और नवीनतम संस्करण में थी।

जब तक यह विफल नहीं होता तब तक अगले सहित सभी पुस्तकालयों की एक श्रृंखला होती है:

/usr/include/features.h:323:26: fatal error: bits/predefs.h: No such file or directory

ऐसा लगता है कि इसमें 32 बिट संस्करण शामिल हैं /usr/include/c++/4.6/x86_64-linux-gnu/32/bits/ ...

मैं क्या खो रहा हूँ?

जवाबों:


40

लेकेन्स्टाइन के जवाब ने मेरे लिए बहुत सारे मौजूदा पैकेजों (64-बिट वनिक) पर विरोध किया।

मैंने इसके बजाय यह किया, जो libc6-dev-i386पैकेज में खींचा :

apt-get install gcc-multilib

7

ia32-libsबस कुछ संगतता पुस्तकालयों में मल्टी आर्क के लिए अभी तक माइग्रेट नहीं किया गया है। 32-बिट लाइब्रेरीज़ को संकलित करने के लिए, आपको C के लिए 32-बिट लाइब्रेरीज़ और विकास फ़ाइलों को स्थापित करने की आवश्यकता है:

sudo apt-get install libc6-dev:i386

यह भी देखें: क्या 11.10 में मल्टीकार फीचर का मतलब बल की मृत्यु है - वास्तुकला स्थापित करता है?


इंस्टॉल libc6-dev:i386पूरे GNU संकलन सूट (जो मुझे एक छोटे से दिल का दौरा पड़ने दिया) को हटाने पर लेकिन उपयोग करने के बाद जोर देकर कहा sudo apt-get install build-essentialसब कुछ पूरी तरह से काम किया।
मैट

मेरे लिए, यह भी nvidia- वर्तमान की स्थापना रद्द कर दी ... हालांकि कोई समस्या नहीं के साथ पुनर्स्थापित।
जेफ

1
ध्यान दें कि ऑलर्ज द्वारा दिया गया विकल्प बेहतर लगता है कि यह 32-बिट पुस्तकालयों को स्थापित करने के लिए अन्य चीजों के टन को दूर नहीं करेगा।
फाबियो ज़ादोज़नी 18
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.