سؤال هل يجب أن يشتمل `arm-none-eabi-gcc` على` stdio.h`؟


أحاول إنشاء مثال بسيط من SDK لـ TI CC3200 (Cortex M4) ، ولكن عندما أحاول تجميعها ، أشكو من stdio.h.

make
  CC    ../main.c
../main.c:45:19: fatal error: stdio.h: No such file or directory
 #include <stdio.h>
                   ^
compilation terminated.
make: *** [obj/main.o] Error 1

بالنظر إلى dirs تضمين ، يبدو أنه صحيح ، لا يوجد ملف stdio.h.

#arm-none-eabi-gcc -print-search-dirs
install: /usr/lib/gcc/arm-none-eabi/4.8.2/
programs: =/usr/lib/gcc/arm-none-eabi/4.8.2/:/usr/lib/gcc/arm-none-eabi/4.8.2/:/usr/lib/gcc/arm-none-eabi/:/usr/lib/gcc/arm-none-eabi/4.8.2/:/usr/lib/gcc/arm-none-eabi/:/usr/lib/gcc/arm-none-eabi/4.8.2/../../../arm-none-eabi/bin/arm-none-eabi/4.8.2/:/usr/lib/gcc/arm-none-eabi/4.8.2/../../../arm-none-eabi/bin/
libraries: =/usr/lib/gcc/arm-none-eabi/4.8.2/:/usr/lib/gcc/arm-none-eabi/4.8.2/../../../arm-none-eabi/lib/arm-none-eabi/4.8.2/:/usr/lib/gcc/arm-none-eabi/4.8.2/../../../arm-none-eabi/lib/

# ls /usr/lib/gcc/arm-none-eabi/4.8.2/include-fixed 
limits.h  README  syslimits.h

# ls /usr/lib/gcc/arm-none-eabi/4.8.2/include/
arm_neon.h  float.h  iso646.h  mmintrin.h  stdalign.h  stdarg.h  stdbool.h  stddef.h  stdfix.h  stdint-gcc.h  stdint.h  stdnoreturn.h  tgmath.h  unwind-arm-common.h  unwind.h  varargs.h

لكن ، هل يجب أن يكون هناك؟ أم أن هذا شيء يجب أن يقدمه SDK لجهاز معين؟


2
2017-07-26 03:10


الأصل


وأود أن أقول نعم. stdio.h هي مكتبة C القياسية. من الصعب تجميع برنامج بدونه. أنا أعتقد أنه يحتوي على نفس الوظيفة لـ TI CC3200. - saiarcot895


الأجوبة:


حسنًا ، كان ذلك سهلاً. أنا فقط بحاجة إلى تثبيت libnewlib-arm-none-eabi والآن كل شيء يعمل. أعتقد أن هذه الحزمة هي أساسا 'libc' لهذا المجمع.


2
2017-07-26 17:24



شكرا لك على فهم ذلك وطرح هذه الإجابة. مجلس التعاون الخليجي هو مثل مستنقع ... - alexsh