التجميع في Cygwin:لم يتم الإعلان عن "EOF" في هذا النطاق، ويتم تجميعه بشكل جيد في CentOS

StackOverflow https://stackoverflow.com//questions/23038295

  •  21-12-2019
  •  | 
  •  

سؤال

أواجه مشكلات في تجميع التطبيقات المرتبطة بنظام التشغيل Linux في Cygwin.

هذا خطأ:

error: ‘EOF’ was not declared in this scope

يتم إنتاجه بواسطة مقتطف التعليمات البرمجية التالي

if (option == EOF) break;

تجميع هذا في CentOS مباشرة لا ينتج عنه أي أخطاء.

هذه هي معلمات g++ التي تم تمريرها بواسطة ملف الصنع:

-g -O0 -Wall -Wextra -std=gnu++11

نسخة دول مجلس التعاون الخليجي على CentOS:

 4.8.1 20130715

نسخة دول مجلس التعاون الخليجي في Cygwin

 4.8.2

أتساءل عما إذا كنت أفتقد بعض المكتبات في Cygwin، أو إذا كان هذا مجرد قيد على Cygwin ولا يمكن حله.

هل كانت مفيدة؟

المحلول

EOF تم تعريفه في stdio.h / cstdio.ما يحدث على الأرجح هو أنك لم تقم بتضمين أحد تلك الرؤوس، ولكن نكون بما في ذلك، على سبيل المثال، iostream.يُسمح لرؤوس المكتبة القياسية بالتسبب في تضمين رؤوس أخرى أيضًا، وبعض عمليات التنفيذ iostream الرؤوس تفعل هذا بالضبط، ولكن ليس كلها.لا يجب أن تعتمد عليه.إذا كنت تستخدم EOF, ، قم بإضافة تضمين صريح للرأس المناسب في التعليمات البرمجية الخاصة بك.(حتى لو لم يكن هذا هو الكود الخاص بك، وهو ليس كذلك في هذه الحالة، فإن التعديل المطلوب في الكود المصدري هو نفسه.)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top