สภาพแวดล้อมการพัฒนาสำหรับ C


10

มองหาแนวคิดในการตั้งค่าสภาพแวดล้อมการพัฒนาที่สะดวกและมีประสิทธิผลสำหรับการพัฒนา C ฉันพบว่าการแก้ไข C ด้วย Vimมีประโยชน์มาก แต่ฉันต้องการรับตัวอย่างของคำแนะนำที่กว้างขึ้น


@txwikinger เห็นด้วยฉันไม่อยากเป็นตำรวจ CW คนแรกที่นี่ :) หรือแท็กเพื่อสร้างแท็ก [อัตนัย] ซึ่งต้องตายอย่างเจ็บปวด
Michael Mrozek

มีชุมชนวิกิอยู่แล้ว ดังนั้นจึงไม่มีข้อแก้ตัว :) และฉันได้สร้างแท็กส่วนตัวดังนั้นความกังวลของคุณก็หมดไป โปรดตรวจสอบวิกิชุมชนตอนนี้ :)
txwikinger

@txwikinger ตอนนี้มันท้อแท้แล้วดังนั้นฉันจึงลบมันจากโพสต์ทั้งหมดที่มี
Michael Mrozek

คำตอบ:


12
  • 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


ฉันจะเพิ่มตัวนับประสิทธิภาพ Linux ( perf.wiki.kernel.org/index.php/Main_Page ) และ / หรือ Oprofile ( oprofile.sourceforge.net/news ) ลงในรายการนั้น
Mark Probst

ฉันเพิ่งสร้างมันเป็นวิกิชุมชนดังนั้นคุณสามารถเพิ่มสิ่งเหล่านั้นได้ในที่นี้ แต่คุณรู้สึกว่าเหมาะสม Performance Counter มีลักษณะเป็น Linux เท่านั้นหรือ ฉันจะดูเพื่อยืนยัน / ปฏิเสธสิ่งนี้ แต่ถ้าอย่างนั้นสิ่งนี้ควรได้รับการบันทึกไว้ในคำแนะนำ
Eli Frey

2

ฉันยืนยันกับ Vim อยู่พักหนึ่งมันคุ้มค่าที่จะรู้พื้นฐานของ VIM เนื่องจากคุณจะพบกล่อง UNIX เสมอที่แห่งหนึ่งที่มี แต่ฉันลองใช้ Emacs และไม่ได้มองย้อนกลับไป Eclipse เป็นทางเลือก 'ทันสมัย' ฉันมีสามอย่างในระบบของฉัน!


2

มันเป็นความชอบส่วนตัวมากดังนั้นฉันไม่คิดว่าฉันจะทำอะไรได้มากกว่าบอกคุณว่าฉันใช้อะไร ฉันได้ตั้งค่า Emacs ด้วยโหมด Flymakeซึ่งรวบรวมไฟล์ที่คุณกำลังทำงานเป็นระยะและแยกวิเคราะห์เอาต์พุตคอมไพเลอร์เพื่อหาข้อผิดพลาดที่คุณได้ทำ มันไฮไลต์ข้อผิดพลาด / คำเตือนในบัฟเฟอร์และแสดงข้อความข้อผิดพลาดคอมไพเลอร์ที่เกี่ยวข้อง


2

ฉันใช้ Kate (ข้อความ) gcc / avr-gcc และสร้างโดยใช้ Git เป็น VC ฉันทำสิ่งที่ฝังอยู่ส่วนใหญ่ใน c และด้านคอมพิวเตอร์ในหลาม


2

หากคุณกำลังพัฒนา C ภายใต้ Unix / Linux คุณต้องใช้Cscopeอย่างแน่นอนหากโครงการมีขนาดที่สำคัญ

cscope เป็นเครื่องมือของนักพัฒนาซอฟต์แวร์สำหรับการท่องรหัสที่มา - ข้ามไปยังฟังก์ชั่นfoobar's นิยามค้นหาสถานที่ทั้งหมดที่ตัวแปรfooมีการอ้างอิงค้นหาไฟล์ทั้งหมดรวมถึงbar.hการเปลี่ยนแปลงที่เกิดขึ้นทั้งหมดbarเข้าbazฯลฯ

นอกจากนี้คุณได้กล่าวถึง Vim ในโพสต์ของคุณ ... นี่คือบทช่วยสอนเกี่ยวกับการใช้ Vim & Cscope ด้วยกัน



1

ที่ชื่นชอบส่วนตัวของฉันคือexVim มันมีปลั๊กอินเสียงเรียกเข้ามากมายซึ่งทำให้ใช้งานง่ายมาก ฉันใช้เวลาประมาณ 1 วันในการเรียนรู้คุณสมบัติ แต่มันจะคุ้มค่า


1

ฉันแก้ไข C พร้อมเสียงเรียกเข้าในคอนโซล ฉันจ้าง makefiles และมีคอมไพเลอร์จำนวนมากเพื่อทดสอบโค้ดของฉันรวมถึง gcc, clang (LLVM) และ icc สิ่งอื่น ๆ ที่ฉันพิจารณาส่วนหนึ่งของสภาพแวดล้อมการพัฒนาของฉัน: การใช้ grep, debuggers และ valgrind ภาษาสคริปต์สำหรับงานสร้างที่ซับซ้อนยิ่งขึ้น Git สำหรับการควบคุมเวอร์ชัน

สิ่งที่สำคัญในใจของฉันมากกว่าที่คุณใช้ในการแก้ไขรหัสคือโครงสร้างของรหัสของคุณ วิธีวางเค้าโครงนั้นอาจเป็นคำถามสำหรับ Stack Overflow แต่ตามที่คุณถามฉันมักจะมีไดเรกทอรีแยกต่างหากสำหรับรหัสวัตถุไม่ใช่สำหรับการแจกจ่ายและอีกโฟลเดอร์หนึ่งสำหรับผลลัพธ์ binar (y | ies) ฉันมีโฟลเดอร์ทดสอบซึ่งมีไฟล์ C มากกว่านั้นที่ใช้รหัสทั่วไปทั้งหมดที่ฉันเขียนและสิ่งเหล่านี้ฉัน valgrind พร้อมกับไฟล์โครงการสุดท้าย


1

คุณสามารถลองมอเตอร์ IDE มันเป็นคำสาปตามดังนั้นคุณควรรู้สึกเหมือนอยู่บ้าน (tm)) มันก็เศร้าเล็กน้อยเพราะมันไม่ได้รับการบำรุงรักษาเป็นเวลา 5 ปีแล้วดังนั้นบางสิ่งอาจจะเสีย แม้ว่าจะยัง - ฉันเชื่อว่ามันคุ้มค่าที่จะลอง


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.