בעיה ב- visual studio c++

פרפציל

New member
בעיה ב- visual studio c++

אני מנסה לקמפל פרוייקט שהוספתי לו קובץ בשם filename.c- ואני מקבל שגיאה:
fatal error C1010: unexpected end of file while looking for precompiled header directive filename.c​
כשאני לוחץ על ה-error עצמו, הוא מוביל אותי לקובץ filename.c, לשורה האחרונה עם ה-} הסוגר, כשהקובץ עצמו בסדר גמור (יש בו רק פונקציה של שתי שורות, שעובדת בפני עצמה) ואני לא מצליח להבין מה דפוק פה. אגב, הקובץ filename.c הוסף לפרוייקט ע"י הפקודה add to project, ולא דרך include# כלשהו.
 

אלדד28

New member
פרפציל,

חסר לך:
#include "StdAfx.h"​
בתור השורה הביצועית הראשונה של הקובץ. אופציה אחרת היא לכבות את השימוש ב-Precompiled headers מתוך project-settings, שם ++C/C, ושם Precompiled headers (לקובץ הספציפי הזה או לכל הפרויקט).
 

DPunisher

New member
לא לשכוח...

אחרי שאתה מכבה את האופציה ל PCH , להעתיק את כל ה include מה stdafx.h לראש קובץ !
 

אלדד28

New member
ולמה זה?

PCH חוסך את קומפילציית ה-STDAFX.H. הוא לא מעלים את ה-INCLUDE ל-STDAFX.H. בקובץ הספציפי הזה חסר include ל - stdafx.h, אבל הוא לא בהכרח נחוץ, תלוי מה הקובץ עושה.
 

DPunisher

New member
becasue

או שה unclude שלך יושבים ב stdafx.h או שהם בראש התכנית שלך. PCH לא חוסך את הקומפילציה. ההפך. אם אתה משתמש ב PCH זה מחייב אותך להכניס את stdafx.h כ include בראש התכנית. כמו שאתה אמרת , כמדומני.
 

אלדד28

New member
תבדוק את עצמך.

קודם כל, אני אישית לא מכניס את ה-include-ים שלי ל-stdafx.h. לא אוהב את זה. יותר נוח לי לעשות את הסדר שאני אוהב. שנית, PCH זה pre COMPILED headers. זה חוסך את הקומפילציה החוזרת של ה-include-ים שיש בתוך ה-PCH, וזה מיועד ל-H-ים שאינם משתנים תדירות - כמו למשל אלו של WIN32 או אלו של MFC. במקום להכניס אותם לכל קובץ CPP ולקמפל אותם כל פעם מחדש, הם יושבים במקום מרוכז, שבזמן קומפילציה מאיץ את התהליך (כי לא צריך לקמפל את קטעי הקוד הללו מחדש).
 
למעלה