
30-08-2007, 10:46
|
|
|
|
חבר מתאריך: 30.07.05
הודעות: 949
|
|
יכול היה להיות רצוי אם היית מוסיף באיזו גירסא של VS אתה משתמש, אבל אני אשתדל להסביר לך בכלליות:
ב-VS יש 2 מצבים עקריים לקומפילציה: Release ו-Debug.
קומפילציית DEBUG, ברורה מאליה, אבל קומפילציית RELEASE זו קומפילציה שונה.
ה-DEBUGGER למעשה מוסיף לך קוד מיוחד ופונק' מיוחדות לקוד המכונה המתקבל (Debug Information), מה שמאפשר לך בעצם לעצור את התוכנית במהלך זמן הריצה (שימוש ב-TBIT של המעבד וכו'), קוד זה סתם מעמיס על התוכנה שאתה תרצה לשחרר מאוחר יותר לשוק, ולכן קיים המוד הנוסף - RELEASE שאינו מוסיף את האינפורמציה הנ"ל ובנוסף יוצר אופטימיזציה של הקוד (קימפול חכם).
DEBUG בלתי אפשרי ביחד עם אופטימיזציה, שכן הקוד שלך עובר בתהליך שינויים מהותיים ולא עובד בצורה הסדרתית שרשמת.
------------------------------------------
עכשיו, אחרי שקצת הסברתי על למה זה קורה, בוא נסביר איך לסדר קצת הגדרות:
למעשה מה שאתה צריך לעשות בהגדרות הוא 2 דברים:
1) להוריד את כל האופטימיזציות של הקומפילציה, אחרת זה לא יעבוד
2) להפעיל את מצב ה-Compile with Debug Information
השיניים הללו בהגדרות אמורות לאפשר לך לדבג את התוכנית.
ב-VS 2005 ההגדרות הטיפוסיות מהסוג הזה הן:
א) ליד החץ הירוק הקטן, יש Combo Box של - Release/Debug. יש להעביר את מצב הקומפילציה ל-Debug.
כעת כנס ל-properties של הפרוייקט שלך.
Configuration properties -> C/C++ -> General
בחלק הזה:
Debug Information Format: Program Database for Edit & Continue (/ZI)
(ואולי תרצה גם לשקול להעלות את ה-WARNING LEVEL ל-3 או ל-4)
Configuration properties -> C/C++ -> Optimization
בחלק הזה:
Optimization: Disabled (/Od)
Favor Speed Or Size: Neither
ובקיצור תעביר שם הכל ל-NO
בצורה דומה טפל גם ב-OPTIMIZATION של ה-LINKER.
לאחר מכן תעשה REBUILD PROJECT ושיהיה בהצלחה
_____________________________________
חתימתכם הוסרה כיוון שלא עמדה בחוקי האתר. לפרטים נוספים לחצו כאן. תוכלו לקבל עזרה להתאמת החתימה לחוקים בפורום חתימות וצלמיות.
|