עבור לתוכן

בעיית קימפול של קוד C תחת לינוקס (אובנטו 7.1).

Featured Replies

פורסם

שלום !

כאשר אני מנסה לקמל בעזרת GCC אני מקבל הודעות שגיאה שהוא לא מכיר את הספריות של STDIO וMATH...

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

להן מה שרשמתי (דרך אגב במחשבים של האונ' זה עובד טוב):

gcc -lm filename.c -o filename.out

הנה הפלט של הודעות השגיאה :

 gcc -lm quadeq.c -o quadeq.out
quadeq.c:13:19: error: stdio.h: No such file or directory
quadeq.c:14:18: error: math.h: No such file or directory
quadeq.c: In function main:
quadeq.c:21: warning: incompatible implicit declaration of built-in function scanf
quadeq.c:22: warning: incompatible implicit declaration of built-in function printf
quadeq.c: In function quadratic_equation:
quadeq.c:32: warning: incompatible implicit declaration of built-in function sqrt
quadeq.c:32: warning: incompatible implicit declaration of built-in function pow
quadeq.c:34: warning: incompatible implicit declaration of built-in function printf

מה יכולה להיות הבעיה? מה עושים?

תודה מראש ,

גל

פורסם

כנראה שאתה צריך להתקין libc6-dev שלא מותקן כבררת מחדל באובנטו

sudo apt-get install build-essential

פורסם
  • מחבר

לומפי תודה רבה ! אכן זה עבד היטב.

אך עכשיו יש בעיה חדשה...

אחרי שאני מקפל נוצר לי קובץ ריצה , אבל משום מה הוא לא מוכן לרוץ , בדקתי הרשאות ויש לו את כל ההרשאות הנחוצות.


$ gcc -lm quadeq.c -o quadeq.out
$ ls -l quadeq.out
-rwxr-xr-x 1 7113 2007-11-24 22:09 quadeq.out
$ quadeq.out
bash: quadeq.out: command not found

מה יכולה להיות הבעיה ואיך ניתן לפתור אותה?

תודה מראש ,

גל

פורסם

בשביל להריץ קובץ הרצה רושמים ככה:

./filename

פורסם
  • מחבר

תודה רבה "רוח קדושה" ;)

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

סתם בשביל ידע כללי יש לך מושג למה?

אני חושב שמה שיש באונ' זה רד האט...

בכל מקרה תודה רבה לכולם!!!

גל

פורסם

זה עניין של ה-path.

קיים משתנה סביבה בשם PATH, שקובע איפה לחפש קבצים להרצה.

ב-windows, כשאתה מפעיל קובץ, הוא קודם כל מחפש אותו בתיקייה הנוכחית, ואם הוא לא שם אז הוא מחפש לפי התיקיות שב-PATH.

ב-unix הוא לא מחפש את הקובץ בתיקייה הנוכחית - הוא מחפש רק ב-PATH. באוניברסיטה כנראה מוגדר ב-PATH לחפש בתיקייה הנוכחית (תעשה echo $PATH ותראה).

פורסם
  • מחבר

תודה רבה שניצל ! השכלת אותי אותי מאד.

בכדי להרחיב את הידע שלי כמה שיותר , היכן אני יכול לשנות את ההגדרות של הPATH ?

יכול להיות שבאונ' הם השתמשו ב~ (מטילדה) כדי שזה יהיה לכל היוזרים בספרית הבית שלהם?

תודה מראש,

גל

פורסם

אתה יכול לשנות את ה-PATH באמצעות setenv, כמובן.

אם אתה רוצה לשנות את ה-PATH הדיפולטי, אתה צריך לכלול פקודת setenv מתאימה באחד מהקבצים cshrc./~ או login./~

(אגב, הסימן נקרא "טילדה").

נ.ב. השאלה יותר רלבנטית לפורום לינוקס, כך שאם יש לך עוד שאלות מומלץ שתפנה לשם, ול-FAQ-ים של לינוקס כמובן.

פורסם
  • מחבר

תודה רבה , אני מודה לך מאד!!!

חשבתי שלסימן ~ קוראים מטילדה ;)

גל

ארכיון

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

דיונים חדשים