आप जीसीसी के आस-पास एक रैपर स्क्रिप्ट बना सकते हैं जो आपके इच्छित झंडे के साथ वास्तविक जीसीसी निष्पादित करता है। यह मेकफ़ाइल और कॉम्प्लेक्स के साथ काम करता है जो पर्यावरण चर के साथ गड़बड़ बनाता है। आपको केवल यह सुनिश्चित करना होगा कि आपकी जीसीसी स्क्रिप्ट वास्तविक जीसीसी बाइनरी की तुलना में पहले पैथ में है। स्क्रिप्ट ही सिर्फ दो लाइनों,
#!/bin/sh
exec /usr/bin/gcc --sysroot=/your/sysroot "[email protected]"
है और अगर $HOME/bin
अपने पथ के शुरू में है, तो आप $HOME/bin
में स्क्रिप्ट डाल सकते हैं, और यह किसी भी अन्य उपयोगकर्ताओं को प्रभावित नहीं करेगा।
आप एक configure
स्क्रिप्ट कि स्पष्ट रूप से /usr/bin/
में gcc
के लिए लग रहा है है, तो आप /usr/bin/gcc.bin
को /usr/bin/gcc
नाम बदलें, और अपनी स्क्रिप्ट /usr/bin/gcc
नाम के लिए आवश्यकता हो सकती है। यह सभी उपयोगकर्ताओं को प्रभावित करेगा। आप क्या कर सकते हैं तो आप इस की जरूरत है, लेकिन यह भी उसे केवल उन्हीं उपयोगकर्ता या उपयोगकर्ताओं को प्रभावित करना चाहते हैं, का उपयोग
#!/bin/sh
[ "$(id -un)" -eq "theuser" ] && exec /usr/bin/gcc.bin --sysroot=/your/sysroot "[email protected]"
exec /usr/bin/gcc.bin "[email protected]"
तो वेरिएंट, उदा एक ही योजना का उपयोग करके एक विशिष्ट सिसरूट सेट करने के लिए विशिष्ट उपयोगकर्ता खाते या समूह सदस्यता।
स्रोत
2013-03-05 21:42:24
यह एकमात्र समाधान है जब मैंने एक्सिस 2/सी को पार करने की कोशिश की। कुछ रहस्यमय कारणों से, एक्सिस 2/सी के मेकफ़ाइल ने साझा किए गए लिंक को लिंक करते समय "--sysroot" विकल्पों को बंद कर दिया है जिन्हें मैंने CFLAGS, LDFLAGS और LIBS पर्यावरण चर में रखा है। मैंने ./configure --disable- साझा विकल्प के साथ साझा अक्षम करने का भी प्रयास किया था, लेकिन लिंकर अंतिम लिंकिंग चरण के दौरान "डुप्लिकेट प्रतीक" बग की शिकायत करेगा। – RichardLiu
@ रिचर्ड लियू: यदि आप AXIS2/C 1.6.0 के लिए 'उपयोग/autogen.sh' चलाते हैं, तो यह एक नया '-with-sysroot = DIR' कॉन्फ़िगरेशन विकल्प बढ़ता है। ऐसा लगता है कि यह केवल libtool के लिए पारित किया गया है, हालांकि। '--with-cflags-sysroot' कॉन्फ़िगरेशन विकल्प जोड़ना (प्रत्येक' config.ac' में लगभग 30 लाइनें) काम करने लगती हैं। क्या आप उस पैच को आजमा सकते हैं? पूरी परियोजना पुरानी प्रतीत होती है, क्योंकि यह पहली फ़ाइल पर विफल हो जाती है, यह मेरी dev मशीन पर संकलन ('उपयोग/src/platforms/unix/uuid_gen_unix.c') को संकलित करने का प्रयास करती है .. –