के साथ प्रीप्रोकैसिंग प्रश्न बांह-नो-एबी-जी ++ 6.2 और न्यूलिब-नैनो के खिलाफ लिंक करने का संदर्भ है।g ++ और specs-file
मैं -specs=nano.specs
के साथ एक सी स्रोत preprocess है, निर्देशिका newlib-nano
से फ़ाइल newlib.h
शामिल है:
echo '#include <string.h>' |\
/opt/gcc-arm-none-eabi-6_2-2016q4/bin/arm-none-eabi-gcc -specs=nano.specs -x c -E - |\
grep '^# 1 .*newlib\.h'
आउटपुट # 1 "/opt/gcc-arm-none-eabi-6_2-2016q4/arm-none-eabi/include/newlib-nano/newlib.h" 1 3 4
(उम्मीद के रूप में)। इसका कारण यह है फ़ाइल nano.specs
(दूसरों के बीच) शामिल हैं लाइनों
%rename cpp nano_cpp
*cpp:
-isystem =/include/newlib-nano %(nano_cpp)
लेकिन अगर मैं एक सी ++ फ़ीड - एक ही संकलक
echo '#include <string.h>' |\
/opt/gcc-arm-none-eabi-6_2-2016q4/bin/arm-none-eabi-gcc -specs=nano.specs -x c++ -E - |\
grep '^# 1 .*newlib\.h'
के माध्यम से स्रोत उत्पादन पढ़ता # 1 "/opt/gcc-arm-none-eabi-6_2-2016q4/arm-none-eabi/include/newlib.h" 1 3
।
दूसरे शब्दों में: चश्मा-फ़ाइल को अनदेखा किया जाता है।
मुझे पता है कि मैं सी ++ स्रोतों में <cstring>
बजाय <string.h>
शामिल हैं और कि जीएनयू जी ++ सामान्यतः …/arm-none-eabi-c++
बजाय …/arm-none-eabi-gcc -x c++
से शुरू हो जाती है लेकिन मैंने किया था कि छोटे अंतर बाहर उत्कीर्ण करने के लिए करना चाहिए हूँ। और: यह मामला नहीं बदलता है।
प्रश्न: सी ++ - फ़ाइलों को newlib-nano/newlib.h
में शामिल करने के लिए मुझे चश्मा-फ़ाइल में क्या जोड़ना है?