Whatsup - לינוקס, תוכנה חופשית וקוד פתוח בעברית

תיכנות בלינוקס - סביבת עבודה מומלצת להרצת תוכניות בשפת C?

moshe2go - 19/12/2017 - 15:27
נושא ההודעה: סביבת עבודה מומלצת להרצת תוכניות בשפת C?
אני לומד לפי הקורס הזה שפת תכנות C:
https://www.edx.org/course/introduction-computer-science-harvardx-cs50x
הם מריצים את התוכניות באמצעות ענן ולא בא לי כל כך. אשמח להמלצה על סביבת עבודה ל C -
עם פייתון אני משתמש ב PyCharm - אפשרי משהו מקביל או משהו יותר קליל ונוח להרצת תוכניות פשוטות יחסית.
Anonymous - 19/12/2017 - 15:34
נושא ההודעה:
gcc + bash ?
Anonymous - 19/12/2017 - 15:34
נושא ההודעה:
אה, לא שמתי לב שביקשת ידידותי ונוח Smile

נסה code::blocks:

http://www.codeblocks.org/
moshe2go - 19/12/2017 - 15:43
נושא ההודעה:
ציטוט:
gcc + bash ?

אבדוק עוד מעט את הקישור ל*ידידותי* שנתת אבל הרצה בקונסול דווקא מענינת אותי
ההרצה של פייתון בקונסול מאוד נוחה - איך עושים את זה ב C - זה דורש שמירה בקובץ או הקשת הפקודות ישר? קישור עם הסבר עשוי לעזור
תודה
Anonymous - 19/12/2017 - 16:21
נושא ההודעה:
בניגוד לפיית'ון, C היא שפה מקומפלת ולא מפורשת (Interpreted)
מעבר לכל מיני "קסמים" שאפשר לעשות*, תמיד צריך לקמפל קוד C לפני שאפשר להריץ.
זה לרוב אומר לשמור לקובץ, להריץ קומפיילר (בלינוקס זה יהיה לרוב gcc), ואז להריץ את הקובץ שנוצר.
ראה למשל כאן:
http://pages.cs.wisc.edu/~beechung/ref/gcc-intro.html

(תוצאה ראשונה בגוגל לחיפוש linux gcc tutorial).


(* הכוונה לאיזה REPL שיפרש סינטקס דמוי C ויתן תוצאות... בפועל כנראה לא באמת יקמפל, אבל לך תדע - אנשים עושים דברים מוזרים לפעמים).
Anonymous - 19/12/2017 - 17:07
נושא ההודעה:
אם אתה רוצה לבצע תרגילים לקורס אולי כדאי לך לדבוק באותו קומפיילר שהם משתמשים בו. לא כל הקומפיילרים של c תואמים ב-100% אחד לשני וגם באלו שכן צריך לדעת איזה דגלים להדליק כדי לקבל את אותן תוצאות.
moshe2go - 19/12/2017 - 18:05
נושא ההודעה:
זו פעם ראשונה עם C והקישור קצת בלבל אותי... הוא עבור C++ אבל יש שם הסבר קצר על C שצריך להשתמש ב gcc וליצר קובץ עם סיומת c. הפקודה הראשונה מבצעת את הקומפילציה ובשביל להריץ צריך להריץ פקודת hello/. ההסבר שלך על הצורך בקומפילציה (בניגוד לפייתון) עזר וזה רץ יפה Smile
התקנתי גם את code::blocks

ציטוט:
אם אתה רוצה לבצע תרגילים לקורס אולי כדאי לך לדבוק באותו קומפיילר שהם משתמשים בו. לא כל הקומפיילרים של c תואמים ב-100% אחד לשני וגם באלו שכן צריך לדעת איזה דגלים להדליק כדי לקבל את אותן תוצאות.

יכול להיות שאתקל בבעיות בהמשך בגלל זה.. אני רואה שגם ב C וגם בפייתון לדוגמא הם מיבאים ספריה: cs50 ואני צריך למצוא מהיכן להוריד אותה?

תודה רבה
Anonymous - 20/12/2017 - 13:13
נושא ההודעה:
יש גם את זה
https://tuhdo.github.io/c-ide.html

(אבל מצריך ממך ללמוד emacs Smile).
Anonymous - 21/12/2017 - 07:54
נושא ההודעה:
ברצינות: מסוף.

אם יש לך Makefile סביר, ואם מדובר על תוכנית קטנה, בניה מחדש היא הרצה של make והרצה של התוכנית היא הרצה של ‎./hello מהמסוף, אולי עם עוד כמה פרמטרים. עדיף לכתוב תוכנית לא אינטראקטיבית ולספק לה את כל מה שהיא צריכה מהקלט:
קוד:

(echo line1| echo line2; echo line3) | ./hello arg1 arg2
cat input_file | ./hello arg1

Anonymous - 21/12/2017 - 12:21
נושא ההודעה:
מספר סביבות ל- C או ++C:

Code::Blocks
Qt Creator
Eclipse
Visual Studio Code
Atom
KDevelop
CLion (לא חופשית)

אם אתה רוצה משהו פשוט וטוב הייתי מתחיל עם Qt Creator או Eclipse. עם Code::Blocks נתקלתי בהרבה באגים, והכי גרוע, פעם אחרונה שניסיתי, הסנכרון שלה עם GDB (ה- Debugger) היה כ"כ גרוע שפשוט לא שמיש, וכשביררתי ראיתי שזה ידוע ופשוט לא תיקנו את זה.
moshe2go - 21/12/2017 - 14:47
נושא ההודעה:
תודה על ההמלצות: אבדוק אותם בהמשך. לגבי מסוף שיכול להיות די נוח הרבה פעמים: לא יודע מה זה makefile? הכוונה לסביבת עבודה כמו שציינו בשרשור הזה או למשהו אחר? האם הכוונה ב make לקומפילציה שמתבצעת באמצעות פקודת gcc? משהו כמו:
קוד:
gcc -o hello hello.c

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

לגבי הקורס CS50: נראה אחלה קורס ומסביר מהיסודות אבל מבחינת שפות התכנות מדובר מטבע הדברים (קורס מבוא) בטעימות קצרות - אשמח להמלצה על מדריך טוב ל C - משהו שיכלול ספריות מוכנות שיקלו על ההרצות.
Anonymous - 22/12/2017 - 07:42
נושא ההודעה:
קובץ Makefile בסיסי יכול להיות משהו כמו:

קוד:

$ cat Makefile
# General:
CFLAGS=-g -O2 -Wall
# Preprocessor: defines/ includes
CPPFLAGS=
# Linker: -l, -L and such
LDFLAGS=
TARGETS=hello

all: $(TARGETS)

clean:
   rm -f $(TARGETS)


moshe2go - 24/12/2017 - 11:15
נושא ההודעה:
תודה על המידע!
אשמח להמלצה על מדריך טוב ל C
כל הזמנים הם GMT + 2 שעות