עבור לתוכן

בעיית לינקינג במעבר בין DEBUG ל RELEASE

Featured Replies

פורסם

שלום לכולם,

אני עובד על פרויקט שמטרתי בו כרגע היא לגרום לו לעבוד כולו ב RELEASE. (קרי לרוץ יותר מהר) הבעיה היא כזאת - הפרויקט מתקמפל יפה מאוד ורצ בלי בעיות ב DEBUG. אולם ברגע שאני מנסה לקמפל ב RELEASE הוא מקבל שגיאות לינקינג... (הפרויקט תלוי בכמה תתי פרויקטים שכולם מתקמפלים יפה מאוד ב RELEASE)

מה שעשיתי לצורך התחלה הוא לקחת את הבלוק של ה DEBUG בקובץ DSP של הפרויקט. (אני עובד בויזואל סטודיו 6) והעתקתי אותו לחלק של ה RELEASE

ככה שכל מה שיבדיל בין הקונפיגורציות הוא השם שלהן אחת היא win 32 debug והשנייה win 32 release זה הכל! (כל שאר האופציות זהות בלי אופימיזציות או שום דבר בסגנון) הבעיה היא שאני במצב כזה מקבל שגיאת לינקינג ב RELEASE ו DEBUG לא!!! אני פשוט לא מבין איך זה יתכן... או מה אני מפספס פה?

(ניסיתי לחפש איזושהיא תלות ב _DEBUG שהוא דגל קומפילציה ב DEBUG אבל לא מצאתי שום דבר שקושר את זה בצורה כלשהי למה שלא עובר לינקינג)

כמובן שניסיתי להתחכות אחרי בעיית הלינקינג אבל היא לא בעיה מסדר ראשון כי לכאורה נראה שהוא באמת אמור להכיר את הדבר שהוא לא מכיר ב RELEASE ואין לי שום דבר שאני יכול לעלות על דעתי שיפריע לו להכיר את זה... (זה בכלל משהו שהוא מקבל מתת פרויקט אחר)

לחלופין אם למישהו יש רעיון איך אני אומר לפרויקט להתקמפל ב DEBUG ופרויקטים שהוא תלוי בהם ב RELEASE זה גם יכול לעזור לדבג את הנושא.

רעיונות איך דבר כזה יכול לקרות? או מה עושים לאתר את הבעיה...

פורסם

חשבת אולי להעלות את הדו"ח שגיאה?

פורסם
  • מחבר

דו"ח סטנדרטי של לינקינג הנה הוא אבל ליתר בטחון - שמות הקבצים/פונקציות הוחלפו כי זה מערכת בעבודה.

Generating Code...

Linking...

Creating library Release/File1.lib and object Release/File1.exp

File2.obj : error LNK2001: unresolved external symbol _SomeFunc

File2.obj : error LNK2001: unresolved external symbol _AnotherFunc

File3.obj : error LNK2001: unresolved external symbol _AnotherFunc

File4.obj : error LNK2001: unresolved external symbol _OneMoreFunc

Release/File1.dll : fatal error LNK1120: 3 unresolved externals

Error executing link.exe.

פורסם

לערוך ביד את קובץ ה- dsp זה אף פעם לא רעיון טוב.

זה נראה כאילו משום מה הקובץ/קבצים שבו נמצאות 3 הפונקציות לא מתלנקג' יחד עם שאר הפרוייקט.

מה שאני הייתי מנסה לעשות זה לשכפל את קונפיגורציית ה- debug, ולשנות את ההגדרות לאלה של release (כלומר, בעיקר - להפעיל אופטימיזציות, ואם רוצים - להוריד debug information)

פורסם
  • מחבר

לערוך DSP זה בערך כמו לערוך MAKEFILE.... לא יותר מדי מסובך לרוב הדברים.... כמובן שהדגלים שם מסובכים קצת :)

לגבי שיכפול זה מה שעשיתי שיכפלתי את הקונפיגורציה בעזרת העתקה של כל החלק של קונפיגורצית ה DEBUG לחלק של RELEASE ב DSP...

מה שיש ב DSP זה 2 קונפיגורציות זהווווות לחלוטין שאחת עובדת השנייה לא עוברת לינקינג....

יש לך רעיון איך עוד אני יכול לשכפל את הקונפיגורציה? (בלי לעבור שדה שדה ולהעתיק ידנית...) להפעיל אופטימיזציות ולכבות את ה DEBUG

ברור שאני יכול המטרה שלי הייתה קודם כל לקמפל את זה בקונפיגורציית RELEASE שהויזואל משום מה החליט שהוא לא אוהב...

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים