มองหาแนวคิดในการตั้งค่าสภาพแวดล้อมการพัฒนาที่สะดวกและมีประสิทธิผลสำหรับการพัฒนา C ฉันพบว่าการแก้ไข C ด้วย Vimมีประโยชน์มาก แต่ฉันต้องการรับตัวอย่างของคำแนะนำที่กว้างขึ้น
มองหาแนวคิดในการตั้งค่าสภาพแวดล้อมการพัฒนาที่สะดวกและมีประสิทธิผลสำหรับการพัฒนา C ฉันพบว่าการแก้ไข C ด้วย Vimมีประโยชน์มาก แต่ฉันต้องการรับตัวอย่างของคำแนะนำที่กว้างขึ้น
คำตอบ:
Emacs / Vim / Eclipse / ... - โดยส่วนตัวแล้วฉันเป็นผู้ใช้ Emacs หากคุณพบว่าลำดับการควบคุมทำให้ยางเป็นสีชมพูของคุณเพียงแค่ Viper-Mode มันขึ้นมา Emacs ได้รับการรวมเข้าเป็นอย่างดีกับยูนิกซ์ทำให้ง่ายต่อการควบคุมทุกอย่างจากที่เดียว Vim ก็ทำงานได้ดีที่นี่ แต่ฉันพบว่า Elisp เป็นภาษาเสริมที่ทรงพลังมากกว่า Vim Script สามารถพูดได้หลายชั่วโมงเกี่ยวกับวิธีการตั้งค่า Emacs สำหรับการพัฒนา C โหมด Flymakeได้รับการกล่าวถึงและเป็นการเริ่มต้นสิ่งใหม่ ๆ ฉันไม่คุ้นเคยกับ Eclipse ฉันไม่พบว่ามันออกจากห้องพักเพียงพอสำหรับหน้าจอของฉันสำหรับรหัสและฉันไม่ชอบวิธีป่องมัน (ผู้ใช้เป็นกลุ่มจะพูดในสิ่งเดียวกันเกี่ยวกับ Emacs) ฉันยังลำเอียงอย่างไม่ยุติธรรมต่อสิ่งที่เขียนใน Java ด้วยเหตุผลด้านความงามอย่างหมดจด
Ctags - ฟังก์ชั่นแท็ก C (หรือภาษาอื่น ๆ ของคุณ) เพื่อให้ Vim หรือ Emacs หรืออะไรก็ตามที่สามารถทำการเชื่อมโยงข้อความไฮเปอร์เล็กน้อยในไฟล์ของคุณ สมมติว่าคุณกำลังเดินไปรอบ ๆ และคุณเห็นฟังก์ชั่นและคุณกำลังเกาหัวพูดว่า "สิ่งนั้นทำอะไรอีกบ้างการตั้งชื่อค่อนข้างคลุมเครือ" Plink-plank-plunk คุณสามารถพุ่งเข้าหาคำจำกัดความของมันได้
Cmake / Gnu-Autotools - Make is great แต่ในบางจุดคุณจำเป็นต้องสรุปสิ่งเล็กน้อยเพื่อให้โครงการของคุณสามารถสร้างตัวเองได้ในระบบทุกประเภทที่คุณไม่มีวิธีทดสอบ หากคุณต้องการคนที่จะสร้างรหัสของคุณบน * nix, Autotools นั้นยอดเยี่ยม แต่จริงๆแล้วคุณควรทำความคุ้นเคยกับ Cmake อยู่ดี ทีมงานสร้าง Cmake ในทุก ๆ การตั้งค่าที่เป็นไปได้และตรวจสอบให้แน่ใจว่าคุณไม่ต้องปวดหัว หากคุณต้องการให้โครงการของคุณง่ายต่อการซื้อหาคนอื่น ๆ หนึ่งในเครื่องมือเหล่านี้มีความสำคัญ
Git / Mercurial / Subversion / ... - คุณสามารถใช้เวลาหลายเดือนในการค้นคว้าซอฟต์แวร์ควบคุมเวอร์ชัน แต่คุณควรใช้ Git มันแข็งแกร่งแล้วมันกระจาย @ $! #% & เคอร์เนล Linux ถูกติดตามด้วย ถ้ามันดีสำหรับไลนัสมันก็จะดีพอสำหรับคุณ ฉันได้ยินสิ่งดีๆเกี่ยวกับ Mercurial ด้วยว่า G ** gle ใช้พวกมันดังนั้นมันอาจจะไม่เลว บางคนดูเหมือนจะชอบการโค่นล้มและ CVS และอะไรก็ตาม ฉันไม่ชอบพวกเขาเพราะพวกเขาเป็นเสาหินซึ่งฉันไม่สะดวกและ จำกัด มาก
Stumpwm / wmii / XMonad / ... - ในบางจุดคุณจะตระหนักว่าสิ่งที่คุณสามารถทำได้เพื่อให้งานของคุณลื่นไหลจะช่วยปรับปรุงผลลัพธ์ของคุณอย่างมาก หนึ่งในวิธีที่ดีที่สุดที่จะป้องกันไม่ให้สมองของคุณแตกสลายบริบทคือการสลับไปสู่การเรียงต่อกันตัวจัดการหน้าต่าง KEYBOARD DRIVEN ฉันเป็นแฟนตัวยงของStumpWMซึ่งเป็นEmacของผู้จัดการหน้าต่าง ดำเนินการอย่างสมบูรณ์ในกระบวนการ Common LISP ที่สามารถปรับแต่งได้ทันทีสิ่งใดก็ตามที่คุณพบว่าทำซ้ำ ๆ สามารถถูกลบออกไปในฟังก์ชั่นและผูกพันกับคำสั่ง สิ่งที่ยอดเยี่ยม ฉันไม่รู้อะไรเกี่ยวกับคนอื่น ๆ มากนัก แต่บางทีการทำแบบละเอียดก็อาจจะเหลือกระทู้อื่น ใช้แป้นพิมพ์ให้ได้มากที่สุด
GDB - ฉันไม่คุ้นเคยกับนัก debuggers คนอื่น ๆ แต่นี่ดูเหมือนจะเป็นมาตรฐานจริง
Valgrind - ฉันไม่รู้อะไรเลยที่ทำในสิ่งที่ทำได้ดี Valgrind มีความสำคัญอย่างยิ่งสำหรับการล่าโปรไฟล์ / การรั่วไหลของหน่วยความจำที่น่ารำคาญที่คุณต้องการดำเนินการต่อ คุณไม่สามารถเขียนโค้ดด้วย malloc / calloc โดยไม่ต้องใช้ Valgrind
ฉันยืนยันกับ Vim อยู่พักหนึ่งมันคุ้มค่าที่จะรู้พื้นฐานของ VIM เนื่องจากคุณจะพบกล่อง UNIX เสมอที่แห่งหนึ่งที่มี แต่ฉันลองใช้ Emacs และไม่ได้มองย้อนกลับไป Eclipse เป็นทางเลือก 'ทันสมัย' ฉันมีสามอย่างในระบบของฉัน!
มันเป็นความชอบส่วนตัวมากดังนั้นฉันไม่คิดว่าฉันจะทำอะไรได้มากกว่าบอกคุณว่าฉันใช้อะไร ฉันได้ตั้งค่า Emacs ด้วยโหมด Flymakeซึ่งรวบรวมไฟล์ที่คุณกำลังทำงานเป็นระยะและแยกวิเคราะห์เอาต์พุตคอมไพเลอร์เพื่อหาข้อผิดพลาดที่คุณได้ทำ มันไฮไลต์ข้อผิดพลาด / คำเตือนในบัฟเฟอร์และแสดงข้อความข้อผิดพลาดคอมไพเลอร์ที่เกี่ยวข้อง
ฉันใช้ Kate (ข้อความ) gcc / avr-gcc และสร้างโดยใช้ Git เป็น VC ฉันทำสิ่งที่ฝังอยู่ส่วนใหญ่ใน c และด้านคอมพิวเตอร์ในหลาม
หากคุณกำลังพัฒนา C ภายใต้ Unix / Linux คุณต้องใช้Cscopeอย่างแน่นอนหากโครงการมีขนาดที่สำคัญ
cscope เป็นเครื่องมือของนักพัฒนาซอฟต์แวร์สำหรับการท่องรหัสที่มา - ข้ามไปยังฟังก์ชั่นfoobar
's นิยามค้นหาสถานที่ทั้งหมดที่ตัวแปรfoo
มีการอ้างอิงค้นหาไฟล์ทั้งหมดรวมถึงbar.h
การเปลี่ยนแปลงที่เกิดขึ้นทั้งหมดbar
เข้าbaz
ฯลฯ
นอกจากนี้คุณได้กล่าวถึง Vim ในโพสต์ของคุณ ... นี่คือบทช่วยสอนเกี่ยวกับการใช้ Vim & Cscope ด้วยกัน
คุณสามารถใช้แพ็คเกจ Netbeans C / C ++ ที่ทำงานกับ G ++ / GCC ได้:
ฉันแก้ไข C พร้อมเสียงเรียกเข้าในคอนโซล ฉันจ้าง makefiles และมีคอมไพเลอร์จำนวนมากเพื่อทดสอบโค้ดของฉันรวมถึง gcc, clang (LLVM) และ icc สิ่งอื่น ๆ ที่ฉันพิจารณาส่วนหนึ่งของสภาพแวดล้อมการพัฒนาของฉัน: การใช้ grep, debuggers และ valgrind ภาษาสคริปต์สำหรับงานสร้างที่ซับซ้อนยิ่งขึ้น Git สำหรับการควบคุมเวอร์ชัน
สิ่งที่สำคัญในใจของฉันมากกว่าที่คุณใช้ในการแก้ไขรหัสคือโครงสร้างของรหัสของคุณ วิธีวางเค้าโครงนั้นอาจเป็นคำถามสำหรับ Stack Overflow แต่ตามที่คุณถามฉันมักจะมีไดเรกทอรีแยกต่างหากสำหรับรหัสวัตถุไม่ใช่สำหรับการแจกจ่ายและอีกโฟลเดอร์หนึ่งสำหรับผลลัพธ์ binar (y | ies) ฉันมีโฟลเดอร์ทดสอบซึ่งมีไฟล์ C มากกว่านั้นที่ใช้รหัสทั่วไปทั้งหมดที่ฉันเขียนและสิ่งเหล่านี้ฉัน valgrind พร้อมกับไฟล์โครงการสุดท้าย
คุณสามารถลองมอเตอร์ IDE มันเป็นคำสาปตามดังนั้นคุณควรรู้สึกเหมือนอยู่บ้าน (tm)) มันก็เศร้าเล็กน้อยเพราะมันไม่ได้รับการบำรุงรักษาเป็นเวลา 5 ปีแล้วดังนั้นบางสิ่งอาจจะเสีย แม้ว่าจะยัง - ฉันเชื่อว่ามันคุ้มค่าที่จะลอง
ฉันใช้ gedit กับ terminal ฝังตัว