עבור לתוכן

חבר'ה עזרה דחוף!בעיית תאימות בין קומפיילרים - C code

Featured Replies

פורסם

שלום לכולם,

אני כבר מספר שבועות עובד על פרוייקט , ועדיין לא מצאתי פיתרון איכותי לבעיה רצינית שניצבת לפני.

אני בונה סימולטור בסביבת visual עבור מערכת real-time שעובדת בסביבת mtos עם קומפיילר של metaware HIGH C

יש חוסר התאמה בין הקומפיילרים, כל מיני אופטימיזציות real-time יות שאין בvisual .

אז מה אני צריך? אני רוצה להשתמש בקבצי מקור של המערכת real-time אשר כתובים בשפת c ולצרף אותם לאפליקציה שלי.

הבעיות הן:

1. בגלל כל האופטימיזציות של הקומפיילר של המערכת real-time אני לא יכול פשוט לצרף אותם אליי

2. ישנם עוד מספר בעיות syntax שקומפיילר metaware "אוכל" ואילו הקומפיילר של visual לא אוכל.

אני חשבתי על פתרון כזה:

לקמפל את הקבצים של המערכת real-time ביחד עם קובץ שלי, לבצע להם לינק וליצור קובץ .exe , הבעיה היא שאני לא מצליח

מכיוון שסביבת העבודה של הקבצים הללו היא תחת mtos וכמובן לא מקומפלים ל.exe .

אבל... אני כן מצליח לקמפל וליצור קבצי .obj , האם אני יכול איכשהו לקחת את הקבצים הללו ולצרף אותך לסימולטור שלי?

האם הם בכלל יהיו קומפטביליים לפרויקט visual ?

האם למישהו יש רעיון אחר לפיתרון?

חשוב! מכיוון שהקבצים שייכים למערכת real time אני לא יכול לגעת בהם...

תודה מראש, מי שחושב על רעיון תבוא עליו הברכה!!!

שוב תודה.

פורסם

ערוך בבקשה את הכותרת כך שתכיל את תמצית השאלה (תעיף גם את ה"דחוף").

פורסם

ברור שאי אפשר ללנקג' קצבי אובייקט ששייכים למערכות שונות עם חומרה שונות ומ"ה שונה וקומפיילר שונה.

מה שאתה יכול לעשות זה לכתוב גרסאות מתאימות ל-visual של החלקים החסרים. אתה לא חייב מימוש שלם, רק מספיק כדי שהתוכנה תתקמפל ותעבוד.

לגבי בעיות של syntax, הטריק הרגיל הוא להגדיר MACRO עבור visual, בהנחה שאפשר:


#ifdef MSC_VER
#define super_restricted_hyper_syntax_special_duper_pointer void*
#endif


super_restricted_hyper_syntax_special_duper_pointer my_pointer;

ארכיון

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

דיונים חדשים