פורסם: 13/08/2016 - 13:50
נושא ההודעה: איך עושים את המעבר מי visual studio ללינוקס ubuntu ????
|
כבר מעל ל 10 שנים שאני כותב קוד ב ++C\C על מערכות WINDOWS ( משתמש כמובן ב visual studio ).
אני לא מכיר את מערכת ההפעלה של לינוקס - אבל נידרשתי במסגרת מסויימת לכתוב משהו עבור לינוקס ( קוד ב C++ ) .
לאחר התקנה של גירסת אובונטו 16.04 ניסיתי לחפש IDE שאוכל בעזרתו לכתוב את הקוד שאני צריך.
אז הורדתי את ECLIPSE שאותו אני מכיר - התקנתי את מה שצריך כדי שאוכל לכתוב שם ב JAVA ו\או ++C וניסיתי להתחיל.
לא תיארתי לעצמי כמה זה מסובך וכמה זה לא דומה אפילו ל visual studio (!)
אני לא מצליח לעשות כלום פה.
אפילו לכתוב את הקוד הכי פשוט אי אפשר פה.
אני מוצא את עצמי מתעסק עם קונפיגורציות ושטויות במקום עם הקוד שאני צריך לפתח.
מישהו יכול להמליץ על IDE שדומה ל VISUAL STUDIO ושיחסוך לי את הזמן להתעסקות על הדברים שהם לא קוד ?
|
|
חזרה לתוכן הדיון |
פורסם: 13/08/2016 - 13:58
נושא ההודעה:
|
visual code , אבל צר לי לומר גם ב visual studio יש לך המון התעסקות בקונפיגורציה (של פרוייקטים ו solution) שזה אותו הדבר אם אתה משתמש ב CMake על VS .
|
|
חזרה לתוכן הדיון |
פורסם: 13/08/2016 - 14:03
נושא ההודעה:
|
אני פותח פרוייקט ב VS - כותב קוד - מקמפל ומריץ.
אין שום התעסקות עם משהו שהוא שונה מי קוד.
ההיתעסקות עם קונפיגורציות הם ממש מינורים.
ולפחות הכל מתקמפל בקליק אחד ( למאט שגיאות קומפילציה )
אי אפשר להשוות למה שקורה בלינוקס.
אני מחפש לפתור את הבעיה ולא להתווכח באיזה פלטפורמה טובה יותר או טובה פחות.
|
|
חזרה לתוכן הדיון |
פורסם: 13/08/2016 - 14:55
נושא ההודעה:
|
yanshof : | אני פותח פרוייקט ב VS - כותב קוד - מקמפל ומריץ.
אין שום התעסקות עם משהו שהוא שונה מי קוד.. |
זה נכון כל עוד אתה לא בונה מול ספריות (אפילו כאלה שאתה בונה) לא בונה מול (או את קבצי ה lib עצמם) קבצי lib , לא בונה מול ATL , MFC , boost או צריך לעבוד מול פרוייקטים שנבנים באמצעות automake או cmake.
גם בבניה של exe רגיל אתה צריך לבחור לאיזו פלטפורמה אתה צריך לבנות (120/130/130_xp/140) מהם דגלי האופטימיזציה איתם בונים.
כשאתה רוצה לבנות משהוא ב C (ולא C++) אתה צריך לשנות את הפרוייקט ולעבוד על הקונפיגורציה שלך (VS מאז 2008 לפחות בונה ברירת מחדל במוד C++) . כשאתה עובד ב C++ אתה חייב להוסיף דגלים מיוחדים בבניה כשיש קוד היסטורי .
גם בלינוקס אתה יכול לעשות -g++ foobar.cc ולקבל בינארי , אבל בדר"כ מלמדים אותך (בדיוק כמו ב VS שצריך לדעת לנהל את הפרוייקט אבל אתה יכול להשתמש בהגדרות ברירת המחדל).
|
|
חזרה לתוכן הדיון |
פורסם: 13/08/2016 - 15:09
נושא ההודעה:
|
Anonymous : | yanshof : | אני פותח פרוייקט ב VS - כותב קוד - מקמפל ומריץ.
אין שום התעסקות עם משהו שהוא שונה מי קוד.. |
זה נכון כל עוד אתה לא בונה מול ספריות (אפילו כאלה שאתה בונה) לא בונה מול (או את קבצי ה lib עצמם) קבצי lib , לא בונה מול ATL , MFC , boost או צריך לעבוד מול פרוייקטים שנבנים באמצעות automake או cmake.
|
תודה רבה על תגובתך.
אתה יכול להפנות אותי בבקשה למקור מספיק טוב כדי שאלמד איך לעבוד בפיתוח על לינוקס ?
כי כל מקור שאני מוצא עושה לי בלגן מספיק גדול כדי שכלום לא יעבוד אצלי בסוף.
|
|
חזרה לתוכן הדיון |
פורסם: 13/08/2016 - 15:26
נושא ההודעה:
|
אם מה אתה הולך לבנות ?
CMake , automake , Makefile .
מה הוא סוג האריזה שאתה הולך להשתמש - deb, rpm,tgz ולאיזו הפצה אתה מכוון.
לפי ההפצה שאליה אתה מכוון ומצורת הבנייה תבדוק את סוג האריזה אילה אתה מכוון.
אם אתה לא יודע מה אתה צריך, תשאל את הצוות שלך או פשוט תלמד כמו שצריך את cmake , automake ובנייה באמצעות Makefile.
התוכן כמעט זהה בין וינדוס ללינוקס (חוץ מכמובן המסלול אותו אתה מגדיר של הכלים).
|
|
חזרה לתוכן הדיון |
פורסם: 13/08/2016 - 15:46
נושא ההודעה:
|
Anonymous : | אם מה אתה הולך לבנות ?
CMake , automake , Makefile .
מה הוא סוג האריזה שאתה הולך להשתמש - deb, rpm,tgz ולאיזו הפצה אתה מכוון.
לפי ההפצה שאליה אתה מכוון ומצורת הבנייה תבדוק את סוג האריזה אילה אתה מכוון.
אם אתה לא יודע מה אתה צריך, תשאל את הצוות שלך או פשוט תלמד כמו שצריך את cmake , automake ובנייה באמצעות Makefile.
התוכן כמעט זהה בין וינדוס ללינוקס (חוץ מכמובן המסלול אותו אתה מגדיר של הכלים). |
אני לא יודע מה זה האריזות שאתה מדבר עליהם.
אני לא מכוון להפצה ספציפית.
אני צרך לבנות משהו בקוד ++C שיתחבר לחבילות WIFI שמתקבלת - זא שיקלוט חבילות שמתקבלות דרך כרטיס הרשת ( ב WIFI ) וישמור אותם
|
|
חזרה לתוכן הדיון |
פורסם: 13/08/2016 - 17:45
נושא ההודעה:
|
אני לא יודע אם זה חלק מהתרגיל שלך, להתחבר אל raw sockets ולשמור אותם... בעצם לעשות packet sniffing. אבל לינוקס יש לך משהו מובנה שעושה את זה, חפש wireshark במנהל החבילות שלך.
אם אתה רוצה לעשות את זה בעצמך - אתה לא צריך איזה sdk מסויים כמו בחלונות (לרמה כזאת - בחלונות אתה לא יכול לעשות את זה עם ה-sdk הרגיל). אבל... בלינוקס, אתה חייב להפעיל את התוכנית שאתה רוצה בעזרת root למשל, על ידי זה שתפעיל אותה בעזרת sudo.
בעזרת חיפוש קצר הגעתי למאמר הזה שמסביר את הטכניקה:
http://www.binarytides.com/packet-sniffer-code-c-linux
אבל... הבעייה שלך יותר עמוקה, אתה מסתבך עם ה-build system.
|
|
חזרה לתוכן הדיון |
פורסם: 13/08/2016 - 17:53
נושא ההודעה:
|
בגדול אתה צריך להבין על מה אתה מדבר .
נכון מאוד מה שאמרו לך קודם cmake וכו' g++
בגדול ה GCC=gnu compilers collections
אתה צריך להבין מה אתה עושה .
eclipse על לינוקס אין שום בעיה , רק צריך להגדיר את ה eclipse לניב הנכון של c++
לדוגמה בשפת C ,
התקן c90 אמור לרוץ על מכונות שהיו עוד לפני c99 ,וטכנית אתה לא יכול להריץ לולאת for
(שנכתבה ב c99)
ולכן אתה צריך לדעת מה ה dialect במתאים למה שאתה כותב
לדוגמה
g++ -std=c99
קוד: |
Visual Studio לא מקפיד על תקנים בכלל ! .
והוא בדרך כלל עושה להם ignore עד שיש לך פרוייקט שיש בו דליפת זיכרון
|
ואז אתה צריך לחפש איפה עשית malloc לא נכון !
ב eclipse\gcc\linux אתה שומר על תקנים ואמור לדעת מה היכולות של כל flag שאתה מסמן או מגדיר .
עבודה עם תקנים חוסכת לך בעיות זיכרון לאורך זמן .
|
|
חזרה לתוכן הדיון |
פורסם: 13/08/2016 - 17:58
נושא ההודעה:
|
טוב בתגובה הזאת ערבבתי לך גם בין C ל C++ שזה קורה ב C\C++
ל c++ יש c++98 שזה תקן משנת 98
אבל הבנת את העיקרון Visual Studio מערבב מערבב עד שיש בעיה בטחינה .
דוגמה : קמפלנו פרוייקט שנכתב ב visual studio .
לקחנו אותו למכונה אחרת linux x86 , הפרוייקט שם דפק segment fault
|
|
חזרה לתוכן הדיון |
פורסם: 13/08/2016 - 18:17
נושא ההודעה:
|
elcuco : | אני לא יודע אם זה חלק מהתרגיל שלך, להתחבר אל raw sockets ולשמור אותם... בעצם לעשות packet sniffing. אבל לינוקס יש לך משהו מובנה שעושה את זה, חפש wireshark במנהל החבילות שלך.
אם אתה רוצה לעשות את זה בעצמך - אתה לא צריך איזה sdk מסויים כמו בחלונות (לרמה כזאת - בחלונות אתה לא יכול לעשות את זה עם ה-sdk הרגיל). אבל... בלינוקס, אתה חייב להפעיל את התוכנית שאתה רוצה בעזרת root למשל, על ידי זה שתפעיל אותה בעזרת sudo.
בעזרת חיפוש קצר הגעתי למאמר הזה שמסביר את הטכניקה:
http://www.binarytides.com/packet-sniffer-code-c-linux
אבל... הבעייה שלך יותר עמוקה, אתה מסתבך עם ה-build system. |
מכיר כמובן את wireshark - אבל זה חלק מי תרגיל לימודי בעיקר.
אני רוצה לעשות את הכל לבד.
|
|
חזרה לתוכן הדיון |
פורסם: 13/08/2016 - 19:10
נושא ההודעה:
|
אז מה הבעייה עם אקלפיס, איפה נתעקת?
|
|
חזרה לתוכן הדיון |
פורסם: 14/08/2016 - 06:59
נושא ההודעה: Re: איך עושים את המעבר מי visual studio ללינוקס ubuntu ????
|
yanshof : | כבר מעל ל 10 שנים שאני כותב קוד ב ++C\C על מערכות WINDOWS ( משתמש כמובן ב visual studio ).
אני לא מכיר את מערכת ההפעלה של לינוקס - אבל נידרשתי במסגרת מסויימת לכתוב משהו עבור לינוקס ( קוד ב C++ ) .
לאחר התקנה של גירסת אובונטו 16.04 ניסיתי לחפש IDE שאוכל בעזרתו לכתוב את הקוד שאני צריך.
אז הורדתי את ECLIPSE שאותו אני מכיר - התקנתי את מה שצריך כדי שאוכל לכתוב שם ב JAVA ו\או ++C וניסיתי להתחיל.
לא תיארתי לעצמי כמה זה מסובך וכמה זה לא דומה אפילו ל visual studio (!)
אני לא מצליח לעשות כלום פה.
אפילו לכתוב את הקוד הכי פשוט אי אפשר פה.
אני מוצא את עצמי מתעסק עם קונפיגורציות ושטויות במקום עם הקוד שאני צריך לפתח.
מישהו יכול להמליץ על IDE שדומה ל VISUAL STUDIO ושיחסוך לי את הזמן להתעסקות על הדברים שהם לא קוד ? |
אתה צודק ולא צודק. VS מיועדת לעבוד רק על ווינדוס אם זה לא היה ככה אז היית יכול לכתוב ב VS ולקמפל בלינוקס. מה שאני מנסה להגיד זה שזו סביבה תפורה לווינדוס ולכן יותר קל לעשות את זה ידידותי למשתמש ווינדוס בלבד. כמו xcode במק.
מצד שני בלינוקס באמת אין סביבה דומה חלק מהענין זה שלינוקס כפלטפורמה היא לא משהו אחיד. אם אתה מחפש משהו דומה ל VS יש את QT creator או איך שקוראים לו שהוא גם קרוס פלטפורם.
|
|
חזרה לתוכן הדיון |
פורסם: 14/08/2016 - 08:52
נושא ההודעה:
|
yanshof : | Anonymous : | אם מה אתה הולך לבנות ?
CMake , automake , Makefile .
מה הוא סוג האריזה שאתה הולך להשתמש - deb, rpm,tgz ולאיזו הפצה אתה מכוון.
לפי ההפצה שאליה אתה מכוון ומצורת הבנייה תבדוק את סוג האריזה אילה אתה מכוון.
אם אתה לא יודע מה אתה צריך, תשאל את הצוות שלך או פשוט תלמד כמו שצריך את cmake , automake ובנייה באמצעות Makefile.
התוכן כמעט זהה בין וינדוס ללינוקס (חוץ מכמובן המסלול אותו אתה מגדיר של הכלים). |
אני לא יודע מה זה האריזות שאתה מדבר עליהם.
אני לא מכוון להפצה ספציפית.
אני צרך לבנות משהו בקוד ++C שיתחבר לחבילות WIFI שמתקבלת - זא שיקלוט חבילות שמתקבלות דרך כרטיס הרשת ( ב WIFI ) וישמור אותם |
אם אתה פשוט צריך להאזין ברמת IP/ethernet תלמד להשתמש ב libpcap (אותו הדבר בין וינדוס לינוקס) , הבינארי שלך יצטרך לרוץ עם הרשאות נוספות (בלינוקס זה יבוצע ע"י capabilities ובוינדוס ע"י שימוש elevated privileges בוינדוס יש לך את winpcap) אפשר כמובן לרוץ תחת רוט או אדמיניסטרטור אבל אז צריך לקחת לך את המקלדת ולאסור עליך לכתוב קוד אם אילו דרישות האפליקציה שלך.
אם לעומת זאת אתה צריך להאזין את חבילות הדאטא של 802.11 זה כבר סיפור אחר לגמרי.
|
|
חזרה לתוכן הדיון |
פורסם: 15/08/2016 - 11:55
נושא ההודעה:
|
Code::Blocks
פשוט, נוח ועובד
חפש אותו במנהל החבילות, או שתוריד מכאן:
http://www.codeblocks.org/
|
|
חזרה לתוכן הדיון |
פורסם: 15/08/2016 - 12:58
נושא ההודעה:
|
עד כמה שהבנתי הבעיה של מר בחור זה צורת הבניה ולא IDE
אם כבר מדברים על IDE אז יש לך את kdevlelop שמיועדת ל++C
https://www.kdevelop.org/
|
|
חזרה לתוכן הדיון |
פורסם: 15/08/2016 - 14:15
נושא ההודעה: יש גירסא ללינוקס
|
|
|
חזרה לתוכן הדיון |
פורסם: 15/08/2016 - 16:45
נושא ההודעה: Re: יש גירסא ללינוקס
|
|
|
חזרה לתוכן הדיון |
פורסם: 15/08/2016 - 17:29
נושא ההודעה: Re: יש גירסא ללינוקס
|
Anonymous : |
AFAIK זה רק editor. |
מתממשק מעולה ל cmake
|
|
חזרה לתוכן הדיון |
פורסם: 15/08/2016 - 22:26
נושא ההודעה: Re: יש גירסא ללינוקס
|
Anonymous : | Anonymous : |
AFAIK זה רק editor. |
מתממשק מעולה ל cmake |
מה זה אומר? כל עורך טקסט אפשר לקשר ל- cmake או לצורת בניה אחרת. זה לא קורס פלטפורם במובן הזה שאתה צריך לפתח לכל סביבה בנפרד. בכל מקרה אתה לא יכול להשוות את זה לפיתוח VS על ווינדוס.
|
|
חזרה לתוכן הדיון |
פורסם: 15/08/2016 - 23:05
נושא ההודעה:
|
זה בכלל מיועד לפיתוח javascript במקור. כדי לקמפל על ווינדוס צריך סביבת mingw ו- gcc או LLDB גם בלינוקס וגם בווינדוס. בקיצור חוץ מהשם זה פשוט editor.
|
|
חזרה לתוכן הדיון |
פורסם: 15/08/2016 - 23:09
נושא ההודעה:
|
הסבר:
קוד: |
Visual Studio Code is a streamlined code editor with support for development operations like debugging, task running and version control. It aims to provide just the tools a developer needs for a quick code-build-debug cycle and leaves more complex workflows to fuller featured IDEs. For more details about the goals of VS Code, see Why VS Code.
|
|
|
חזרה לתוכן הדיון |
פורסם: 16/08/2016 - 10:17
נושא ההודעה:
|
Anonymous : | זה בכלל מיועד לפיתוח javascript במקור. כדי לקמפל על ווינדוס צריך סביבת mingw ו- gcc או LLDB גם בלינוקס וגם בווינדוס. בקיצור חוץ מהשם זה פשוט editor. |
פשוט תתקין C++ extention
|
|
חזרה לתוכן הדיון |
פורסם: 16/08/2016 - 14:09
נושא ההודעה:
|
Anonymous : | Anonymous : | זה בכלל מיועד לפיתוח javascript במקור. כדי לקמפל על ווינדוס צריך סביבת mingw ו- gcc או LLDB גם בלינוקס וגם בווינדוס. בקיצור חוץ מהשם זה פשוט editor. |
פשוט תתקין C++ extention |
כן editor ל- C++. ומה עם הסביבת בניה?
|
|
חזרה לתוכן הדיון |
פורסם: 16/08/2016 - 14:45
נושא ההודעה:
|
Anonymous : | Anonymous : | Anonymous : | זה בכלל מיועד לפיתוח javascript במקור. כדי לקמפל על ווינדוס צריך סביבת mingw ו- gcc או LLDB גם בלינוקס וגם בווינדוס. בקיצור חוץ מהשם זה פשוט editor. |
פשוט תתקין C++ extention |
כן editor ל- C++. ומה עם הסביבת בניה? |
https://code.visualstudio.com/docs/languages/cpp
https://github.com/vector-of-bool/vscode-cmake-tools
|
|
חזרה לתוכן הדיון |
פורסם: 16/08/2016 - 14:51
נושא ההודעה:
|
מגניב זה עובד?
|
|
חזרה לתוכן הדיון |
פורסם: 16/08/2016 - 15:02
נושא ההודעה:
|
|
|
חזרה לתוכן הדיון |
פורסם: 16/08/2016 - 17:23
נושא ההודעה:
|
Anonymous : |
אל תשכח את twxs.cmake |
מה זה?
|
|
חזרה לתוכן הדיון |
פורסם: 16/08/2016 - 17:33
נושא ההודעה:
|
מזהה סינטקטי של cmake (תחשוב על intelisense שמכיר את הסינטקס של CMake)
|
|
חזרה לתוכן הדיון |
פורסם: 16/08/2016 - 17:34
נושא ההודעה:
|
|
|
חזרה לתוכן הדיון |
|