इसे सही होने में थोड़ा समय लगा। मेरे पास यह मुद्दा था जब एक एआरएम लक्ष्य के लिए उबंटू में क्रॉस-संकलन। मैंने इसे हल किया:
PATH=$PATH:/ccpath/bin CC=ccname-gcc AR=ccname-ar LD=ccname-ld CPPFLAGS="-nostdinc -I/ccrootfs/usr/include ..." LDFLAGS=-L/ccrootfs/usr/lib ./autogen.sh --build=`config.guess` --host=armv5tejl-unknown-linux-gnueabihf
सूचना CFLAGS का उपयोग autogen.sh/configure के साथ नहीं किया जाता है, इसका उपयोग करने से मुझे त्रुटि मिली: "कॉन्फ़िगर: त्रुटि: C कंपाइलर निष्पादक नहीं बना सकता"। बिल्ड वातावरण में मैं एक autogen.sh स्क्रिप्ट का उपयोग कर रहा था, यदि आपके पास autogen.sh स्क्रिप्ट स्थानापन्न नहीं है ।/autogen.sh साथ ./configure ऊपर की कमांड में। मैंने --host पैरामीटर प्राप्त करने के लिए लक्ष्य प्रणाली पर config.guess चलाया।
सफलतापूर्वक autogen.sh/configure चलाने के बाद, इसके साथ संकलित करें:
PATH=$PATH:/ccpath/bin CC=ccname-gcc AR=ccname-ar LD=ccname-ld CPPFLAGS="-nostdinc -I/ccrootfs/usr/include ..." LDFLAGS=-L/ccrootfs/usr/lib CFLAGS="-march=... -mcpu=... etc." make
सीएफएलएजीएस जिसका मैंने उपयोग करने के लिए चुना था: "-march = armv5te -fno-tree-Vectorize -mthumb-interwork -mcpu = arm926ej-s"। इसमें शामिल सभी निर्देशिकाओं को सही ढंग से प्राप्त करने में थोड़ा समय लगेगा: आप चाहते हैं कि कुछ में आपके क्रॉस-कंपाइलर की ओर इशारा किया जाए और कुछ को आपके रूट फाइल सिस्टम में शामिल करना शामिल है, और संभवतः कुछ संघर्ष भी होंगे।
मुझे यकीन है कि यह सही जवाब नहीं है। और मैं अभी भी मेकफाइल्स में / / ccrootfs की ओर इशारा करते कुछ निर्देशिकाओं को देख रहा / रही हूं। इसे सही करने के लिए जानना पसंद करेंगे। आशा है कि यह किसी की मदद करता है।
export C_INCLUDE_PATH=~/local/include:$C_INCLUDE_PATH
, तो आपका कंपाइलर सबसे पहले~/local/include
और $ C_INCLUDE_PATH में ही सर्च करेगा , अगर उसमें पहली डायरेक्टरी शामिल नहीं थी।