C ++ IDE สำหรับ Linux? [ปิด]


209

ฉันต้องการขยายขอบเขตการเขียนโปรแกรมเป็น Linux ชุดเครื่องมือพื้นฐานที่ดีและเชื่อถือได้มีความสำคัญและอะไรที่เป็นพื้นฐานมากกว่า IDE?

ฉันสามารถค้นหาหัวข้อ SO เหล่านี้ได้:

ฉันไม่ได้กำลังมองหาIDE ที่มีน้ำหนักเบา ถ้า IDE มีค่าเงินฉันจะจ่ายให้ดังนั้นมันจึงไม่จำเป็นต้องฟรี

คำถามของฉันแล้ว:

มีอะไรดีการเขียนโปรแกรม C ++ IDE สำหรับ Linux?

ค่าต่ำสุดนั้นค่อนข้างเป็นมาตรฐาน: การเน้นไวยากรณ์, การเติมโค้ด (เช่นintellisenseหรือ Eclipse) และการดีบักแบบรวม (เช่นเบรกพอยต์พื้นฐาน)

ฉันค้นหาด้วยตัวเอง แต่มีอยู่มากมายที่แทบจะแยกความดีออกจากมือไม่ได้โดยเฉพาะกับคนที่มีประสบการณ์การเขียนโค้ด C ++ ใน Linux เล็กน้อย ฉันรู้ว่าEclipse รองรับ C ++และฉันชอบ IDE สำหรับ Java แต่มันดีสำหรับ C ++ และมีอะไรที่ดีกว่านี้หรือไม่

โพสต์ที่สองมีข้อเสนอแนะที่ดี แต่สิ่งที่ฉันขาดหายไปคือสิ่งที่ทำให้ IDE ที่ถูก sugest นั้นดีสำหรับผู้ใช้สิ่งที่เป็นประโยชน์ (dis)

บางทีคำถามของฉันควรจะเป็น:

IDE คุณเสนออะไร (ให้ประสบการณ์ของคุณ) และทำไม


1
นี่คือคำถามที่ฉันควรใช้กับ IDE บน Linux ในวันที่สองหรือสองวัน
Ben Collins

บางทีคุณอาจจะดูวันที่คำถามนี้ถูกถาม ... หรือชี้คำถามใหม่เพื่อที่นี่
Sven

ในรีลีสล่าสุด Eclipse ได้รวมeclipse.org/linuxtoolsเข้ากับชุดฝึกอบรม - โครงการดังกล่าวมีเป้าหมายที่จะทำให้ Eclipse เป็น C / C ++ IDE ที่เต็มเปี่ยมยิ่งขึ้นบน Linux โดยการรวมเครื่องมือเฉพาะ Linux
Jean Hominal

คำตอบ:


259

เริ่มแรก: ความสับสน

เมื่อก่อนเขียนคำตอบนี้ฉันเพิ่งเปลี่ยนจาก Visual Studio (มีประสบการณ์หลายปี) เป็น Linux และสิ่งแรกที่ฉันทำคือพยายามหา IDE ที่สมเหตุสมผล ในเวลานี้เป็นไปไม่ได้: ไม่มี IDE ที่ดีอยู่

Epiphany: UNIX เป็น IDE ทั้งหมดของมัน. 1

จากนั้นฉันก็รู้ว่า IDE ใน Linux เป็นบรรทัดคำสั่งที่มีเครื่องมือ:

  • ก่อนอื่นคุณต้องตั้งค่าเปลือกของคุณ
  • และบรรณาธิการของคุณ เลือกพิษของคุณ - ทั้งคู่เป็นสุดยอดของศิลปะ:

ขึ้นอยู่กับความต้องการของคุณคุณจะต้องติดตั้งและกำหนดค่าปลั๊กอินต่างๆเพื่อให้เครื่องมือแก้ไขทำงานได้อย่างดี (นั่นเป็นส่วนที่น่ารำคาญ) ตัวอย่างเช่นโปรแกรมเมอร์ส่วนใหญ่ใน Vim จะได้รับประโยชน์จากปลั๊กอินYouCompleteMeสำหรับการเติมข้อความอัตโนมัติอัจฉริยะ

เมื่อทำเสร็จแล้วเชลล์คือส่วนติดต่อคำสั่งของคุณเพื่อโต้ตอบกับเครื่องมือต่าง ๆ - Debuggers (gdb), Profilers (gprof, valgrind) ฯลฯ คุณตั้งค่าโครงการ / สภาพแวดล้อมการสร้างโดยใช้Make , CMake , SnakeMakeหรืออื่น ๆ ทางเลือก และคุณจัดการรหัสของคุณด้วยระบบควบคุมเวอร์ชัน (คนส่วนใหญ่ใช้Git ) คุณยังใช้tmux (ก่อนหน้านี้หน้าจอยัง) เพื่อมัลติเพล็กซ์ (= คิดว่าหลาย windows / แท็บ / แผง / แผง) และยังคงเซสชันเทอร์มินัลของคุณ

ประเด็นก็คือว่าขอบคุณที่เปลือกและเครื่องมือไม่กี่เขียนการประชุมเหล่านี้ทำงานร่วมกับคนอื่น ๆ และด้วยวิธีนี้เชลล์ลินุกซ์เป็นสภาพแวดล้อมการพัฒนาแบบบูรณาการอย่างแท้จริงโดยสมบูรณ์เทียบเท่ากับ IDE ที่ทันสมัยอื่น ๆ (นี่ไม่ได้หมายความว่าแต่ละ IDE ไม่มีคุณสมบัติที่บรรทัดคำสั่งอาจขาด แต่อินเวอร์สก็เป็นจริงเช่นกัน)

เพื่อให้แต่ละคนนั้นเอง

ฉันไม่สามารถพูดเกินจริงได้ว่าเวิร์กโฟลว์ดังกล่าวทำงานได้ดีเพียงใดเมื่อคุณมีนิสัย แต่บางคนก็ชอบบรรณาธิการกราฟิกและในปีที่ผ่านมาตั้งแต่คำตอบนี้ถูกเขียนขึ้นมาลีนุกซ์ได้รับชุด IDE กราฟิกที่ยอดเยี่ยมสำหรับภาษาการเขียนโปรแกรมที่แตกต่างกันหลายภาษา (แต่ไม่ใช่เท่าที่ฉันรู้สำหรับ C ++) ลองให้พวกเขาแม้ว่า - เช่นฉัน - คุณท้ายไม่ได้ใช้พวกเขา นี่เป็นเพียงการเลือกขนาดเล็กและลำเอียง:

โปรดทราบว่ารายการนี้ยังไม่เสร็จสมบูรณ์


1ฉันขโมยชื่อนั้นจากความคิดเห็นของ dsm

2ฉันเคยอ้างถึงเป็นกลุ่มที่นี่ และในขณะที่ธรรมดาเสียงยังคงมีความสามารถมากกว่า Neovim เป็นการเริ่มต้นใหม่ที่มีแนวโน้มและเป็นหูดเก่าที่ทันสมัย


223
ฉันไม่เห็นด้วยอย่างยิ่ง อุดมคติที่ดีนั้นสำคัญไม่ว่าคุณจะทำงานอะไร มันเพิ่มผลผลิตอย่างมาก ฉันใช้ codeblocks และพบว่าการกลับไปที่ VI นั้นแทบจะเป็นไปไม่ได้ ฉันเขียนโค้ดบน Mac, Win และ Linux และถึงแม้ว่าฉันจะหา visual studio ว่าเป็น IDE ที่ดีที่สุด แต่ codeblocks ก็เข้ามาใกล้
DavidG

35
เดวิดบางทีคุณสามารถบอกรายละเอียดได้ (คำตอบของตัวเอง…) สิ่งที่คุณพลาดไปจาก toolchain ที่ฉันอธิบายไว้ว่า IDE ส่งมอบ อย่างที่ฉันบอกไปแล้วว่าฉันมาจากพื้นหลัง IDE ที่แข็งแกร่งและการเพิ่มประสิทธิภาพของฉันก็เป็นสิ่งที่ตรงกันข้ามกับคุณ
Konrad Rudolph

48
Vim ให้การสนับสนุนการปรับโครงสร้างแบบใด ใน Eclipse (ซึ่งทำงานภายใต้ Linux) ฉันสามารถเปลี่ยนชื่อของวิธีการจาวาที่ฉันต้องการแม้ว่าจะถูกเรียกใช้ใน 300 แห่ง คุณสามารถทำได้อย่างง่ายดายใน Vim หรือไม่?
quant_dev

25
quant_dev: การเปลี่ยนโครงสร้างต้องแยกวิเคราะห์ซอร์สโค้ดในบางวิธี เท่าที่ฉันรู้ไม่มีโมดูล VIM ทำเช่นนั้นดังนั้นคำตอบสำหรับคำถามของคุณคือ“ ไม่” นั่นเป็นหนึ่งในเหตุผลที่ต้องการใช้ IDE สำหรับภาษาที่มีศูนย์กลางเป็น IDE เช่น Java เนื่องจากการสนับสนุนการเปลี่ยนโครงสร้างใหม่ (ฯลฯ ) สำหรับ C ++ นั้นน้อยมาก (แม้ใน IDEs) นี่จึงไม่ใช้กับ C ++
Konrad Rudolph

11
@hasen: oh แต่ส่วนใหญ่ของมันสามารถ ตัวอย่างเช่นการเปลี่ยนชื่อขอบเขต และเชื่อว่าฉันนี้เป็นใหญ่ และ Ecplise (เช่น) สามารถบันทึกงานจำนวนมากได้ที่นี่
Konrad Rudolph

86

รายการโปรดส่วนตัวของฉันคือCodeLite 2.x IDE

ดู: http://www.codelite.org

การตัดสินใจใช้ CodeLite ขึ้นอยู่กับการวิจัยเกี่ยวกับ C ++ IDE ต่อไปนี้สำหรับ Linux:

  • Eclipse Galileo พร้อมด้วยปลั๊กอิน CDT
  • NetBeans 6.7 (ซึ่งเป็นพื้นฐานสำหรับ SunStudio IDE)
  • KDevelop4
  • CodeBlocks 8.02
  • CodeLite 2.x

หลังจากที่ทุกคนฉันได้ตัดสินใจที่จะใช้CodeLite 2.x

ด้านล่างฉันได้แสดงข้อดีและข้อเสียบางประการเกี่ยวกับ C ++ IDE ดังกล่าว โปรดทราบว่าสิ่งนี้สะท้อนถึงความเห็นส่วนตัวของฉันเท่านั้น!

แก้ไข : SOF น่าเสียดายที่ไม่สนับสนุนตารางดังนั้นฉันต้องเขียนในวรรค ...

Eclipse Galileo พร้อมด้วยปลั๊กอิน CDT

ข้อดี:

  • เร็วพอสมควร
  • ยังรองรับ Java, Perl (ด้วยปลั๊กอิน EPIC)
  • ที่ใช้กันทั่วไปและบำรุงรักษาอย่างดี
  • มีให้สำหรับรสชาติของระบบปฏิบัติการอื่น ๆ (Windows, MacOS, Solaris, AIX (?))

จุดด้อย:

  • GUI ค่อนข้างสับสนและไม่สอดคล้องกัน - ไม่ง่ายเลย
  • น้ำหนักมาก
  • รองรับ CVS (AFAIK) เท่านั้น

NetBeans 6.7 (โปรดทราบว่านี่เป็นพื้นฐานสำหรับ SunStudio IDE)

ข้อดี:

  • หนึ่งใน GUI ที่ใช้งานง่ายที่สุดที่ฉันเคยเห็น
  • ยังรองรับ Java, Python, Ruby
  • รวม CVS, SVN, Mercurial
  • ที่ใช้กันทั่วไปและบำรุงรักษาอย่างดี
  • สามารถใช้ได้สำหรับระบบปฏิบัติการอื่น ๆ (Windows, MacOS, Solaris)

จุดด้อย:

  • ช้ามาก
  • น้ำหนักมาก
  • ใช้ Spaces สำหรับการเยื้องซึ่งไม่ใช่นโยบายในที่ทำงานของฉัน ฉันแน่ใจว่านี่สามารถกำหนดค่าได้ แต่ฉันไม่สามารถหาวิธีการได้

KDevelop4 (หมายเหตุ: ฉันไม่ได้ทำการทดสอบมากนัก)

ข้อดี:

  • ที่ใช้กันทั่วไปบน Linux
  • รวม CVS, SVN, Mercurial

จุดด้อย:

  • GUI ดูค่อนข้างล้าสมัย
  • น้ำหนักมาก
  • เฉพาะอย่างยิ่งกับสภาพแวดล้อมของ KDE

CodeBlocks 8.02 (หมายเหตุ: ฉันไม่ได้ทดสอบอะไรมากมาย)

ข้อดี:

  • เร็วพอสมควร

จุดด้อย:

  • GUI ดูค่อนข้างเก่า (แม้ว่าจะมีหน้าจอเริ่มต้นที่ดี)
  • แบบอักษรในเครื่องมือแก้ไขมีขนาดเล็กมาก
  • ไอคอนบางอัน (เช่นไอคอนที่เกี่ยวข้องกับการดีบักเกอร์เริ่มต้น / การก้าว) มีขนาดเล็กมาก
  • ไม่มีการรวมการควบคุมแหล่งที่มา

CodeLite 2.x (หมายเหตุ: นี่คือรายการโปรดส่วนตัวของฉัน)

ข้อดี:

  • GUI ที่ดูดีและทันสมัยที่สุดเท่าที่ฉันเคยเห็นบน Linux
  • มีน้ำหนักเบา
  • เร็วพอสมควร
  • รวม SVN
  • มีให้ในรสชาติของระบบปฏิบัติการอื่น ๆ (Windows, MacOS, Solaris (?))

จุดด้อย:

  • ไม่มีการรวม CVS (สำคัญสำหรับฉันเพราะฉันต้องใช้ในที่ทำงาน)
  • ไม่รองรับ Java, Perl, Python (น่าจะดี)

14
Eclispe มีการสนับสนุน Hg, Git, SVN และอื่น ๆ ผ่านทางปลั๊กอิน และหน้าจอเริ่มต้น / สแปลชดูดลูกบอลขนาดใหญ่ พวกเขาดูดทรัพยากรและให้ประโยชน์น้อยมาก และพวกเขามักจะปรากฏขึ้นต่อหน้าสิ่งที่ฉันกำลังทำอยู่ขณะที่รอให้แอปโหลด PortableApps และ Eclipse ต้องกำจัดพวกเขา
Chris K

4
Codelite มีแป้นพิมพ์ลัดเหมือนกับ Visual Studio สำหรับการแก้ไขข้อบกพร่องทำให้ผู้ใช้ติดตั้ง Visual Visual ได้ง่ายมาก
Raoul Supercopter

อาจจะชนะม้าตัวเก่าได้ที่นี่ แต่ GUI ของ IMO eclipse นั้นไม่มีใครเทียบได้จริงๆ ใช่มันยากที่จะเรียนรู้ในตอนแรก แต่มันก็เหมือนกับ Vi ที่ผลผลิตเริ่มพุ่งสูงขึ้นหลังจากที่คุณปีนขึ้นไปบนโค้งการเรียนรู้ที่สูงชัน เพื่อพิสูจน์จุดลองกด Ctrl + 3 - หนึ่งในคุณสมบัติที่ยอดเยี่ยมมากใน eclipse IMO
kizzx2

"จุดด้อย: ใช้ Spaces สำหรับการเยื้อง [... ] ฉันแน่ใจว่านี่สามารถกำหนดค่าได้ แต่ฉันไม่สามารถหาวิธีการดังกล่าวได้" นั่นแสดงให้เห็นว่าคุณไม่ได้คุ้นเคยกับเครื่องมือจริงๆมิฉะนั้นคุณจะพบตัวเลือกในที่สุด
Johan Boulé

5
CodeLite นั้นยอดเยี่ยมมากเหมือนกับการเคี้ยวหมากฝรั่งน้ำแข็ง Dentyne มันจะปล่อยให้รสชาติที่สดใหม่และมิ้นต์ในปากของคุณ อุปราคาในขณะที่มีคุณสมบัติยังช่วยให้คุณอาเจียนหลังจากลิ้มรสเมื่อคุณใช้มัน ฉันรู้ว่ามันฟังดูไร้สาระที่จะพูด แต่มันเป็นคำเปรียบเทียบที่ดีที่สุดสำหรับการอธิบาย "ความรู้สึก" ในการใช้พวกเขา ฉันแน่ใจว่าคนอื่นจะเห็นด้วยกับฉัน
Didier A.

75
  1. รหัส :: บล็อก
  2. Eclipse CDT

ในไม่ช้าคุณจะพบว่า IDEs ไม่เพียงพอและคุณจะต้องเรียนรู้เครื่องมือ GCC ต่อไป (ซึ่งไม่ยากอย่างน้อยเรียนรู้การทำงานพื้นฐาน) แต่ไม่มีอันตรายใด ๆ ในการลดความเจ็บปวดในระยะเปลี่ยนผ่านด้วย IDEs, IMO


+1 สำหรับ codeblocks และใช่แล้วคุณจะต้องเรียนรู้วิธีการคอมไพล์และรันโปรแกรมของคุณจาก shell อย่างแน่นอนทำให้ code :: blocks มี blimishes
Earlz

Eclipse ไม่ได้มีน้ำหนักเบา IMHO, Code :: Blocks ... เพียงแค่
rubenvb

7
-1 สำหรับบล็อคโค้ด -1 สำหรับ eclipse พวกเขาทั้งสองเปลี่ยน UI ในระหว่างการดีบัก จนถึงจุดที่ผู้ใช้มือใหม่มักรู้สึกหายไป พวกเขาทั้งคู่ไม่สามารถดีบักส้อมได้ พวกเขาทั้งสองมีปัญหาที่น่ารังเกียจกับการรวม SVN / CVS (Eclipse ล่าสุดควบคู่กับ Subclipse ถูกทำลายใน Gnome ตั้งแต่ 4/28/11 และล่มทุก 10 นาที) การตั้งค่าการควบคุมแหล่งที่มาเป็นฝันร้ายและการรวมเข้ากับ IDE เหล่านี้เป็นเรื่องยาก
bleepzter

4
@bleepzter -1 สำหรับการใช้ SVN / CVS เพื่อเริ่มต้นด้วย))
OneOfOne

1
Mercurial, Git และ Bazaar ซึ่งเหนือกว่าอย่างมากในทุก ๆ ด้าน
OneOfOne

66

คำตอบที่รวดเร็วเพียงเพื่อเพิ่มความรู้เล็ก ๆ น้อย ๆ กับหัวข้อนี้:
แน่นอนคุณต้องตรวจสอบNetBeans Netbeans 6.7 มีคุณสมบัติดังต่อไปนี้:

  • โปรเจ็กต์ C / C ++ และเทมเพลต: รองรับการเน้นไวยากรณ์, การเติมโค้ดอัตโนมัติ, การเยื้องอัตโนมัติ
  • มีตัวดีบัก C / C ++
  • รองรับการกำหนดค่าคอมไพเลอร์, เครื่องมือจัดการการกำหนดค่าและการสนับสนุน Makefile (ด้วยตัวช่วยสร้าง)
  • มันมีหน้าต่างชั้นเรียนหน้าต่างการใช้งานและหน้าต่างการนำทางไฟล์ (หรือแผง)
  • มุมมองการขยายมาโครและคำแนะนำเครื่องมือ
  • การสนับสนุนสำหรับการพัฒนา QT

ฉันคิดว่ามันเป็นการทดแทน Visual Studio ที่สมบูรณ์แบบ (และดีกว่า) และเป็นเครื่องมือที่ดีมากในการเรียนรู้ C / C ++

โชคดี!


2
มันก็ดีจริงๆสำหรับ c ++ มันมีตัวแยกวิเคราะห์ภาษาที่ดีที่สุด
Johan Boulé

1
ฉันสนุกกับ Netbeans มากกว่า Eclipse สำหรับการพัฒนา c ++
Thomas Langston

9
NetBeans สนุกกว่านี้มากแล้ว Eclipse ฉันหวังว่าผู้คนจะเริ่มตระหนักว่า
Didier A.

1
หลังจากต่อสู้กับ Eclipse เป็นเวลาหลายสัปดาห์ฉันพบสิ่งนี้เปลี่ยนเป็น NetBeans และขอบคุณ! มันมีอินเตอร์เฟซที่ดีกว่าตอบสนองได้ง่ายขึ้นและปรับแต่งได้ Beats Eclipse ลงมือ
Frederik

1
โหวตอีกครั้งที่นี่สำหรับ NetBeans ที่ดีกว่าคือ Eclipse นอกจากนี้ยังมีการจำลอง Vim ที่ดีที่สุด (เป็นปลั๊กอิน) ที่ฉันเคยใช้
button

52

อย่างน้อยสำหรับโครงการเฉพาะของQt ผู้สร้าง Qt (จาก Nokia / Trolltech / Digia) แสดงสัญญาที่ยอดเยี่ยม


10
ฉันใช้มันสำหรับโครงการที่ไม่ใช่ของ QT เช่นกัน
โอกาส

มันเป็นสิ่งที่ดี. ฉันลองมันและชอบมันมาก
Tyler Long

32

คุณช่วยอธิบายให้ชัดเจนมากขึ้นว่ามันเป็นอย่างไรสำหรับคุณสิ่งที่คุณต้องเปลี่ยน บางทีคุณอาจชี้ให้ฉันในทิศทางที่ถูกต้องโดยให้ลิงก์ไปยังข้อมูลที่คุณใช้

แหล่งที่มาครั้งแรกของฉันเป็นจริงเครื่องมือฯmanหน้า เพียงพิมพ์

$ man toolname

บนบรรทัดคำสั่ง ( $นี่คือส่วนหนึ่งของพรอมต์ไม่ใช่อินพุต)

ขึ้นอยู่กับแพลตฟอร์มนั้นค่อนข้างเขียนได้ดีและสามารถพบได้บนอินเทอร์เน็ต ในกรณีของmakeฉันจริง ๆ แล้วอ่านเอกสารที่สมบูรณ์ซึ่งใช้เวลาไม่กี่ชั่วโมง จริงๆแล้วฉันไม่คิดว่ามันจำเป็นหรือเป็นประโยชน์ในกรณีส่วนใหญ่ แต่ฉันมีข้อกำหนดพิเศษเล็กน้อยในการมอบหมายครั้งแรกของฉันภายใต้ Linux ที่ต้องใช้ makefile ที่ซับซ้อน หลังจากเขียน makefile ฉันให้มันกับเพื่อนร่วมงานที่มีประสบการณ์ซึ่งได้ปรับแต่งเล็กน้อยและแก้ไข หลังจากนั้นฉันก็รู้makeมาก

ฉันใช้ GVIM เพราะฉันเคยมีประสบการณ์ก่อนหน้านี้บ้าง (แต่ไม่มาก) ฉันไม่สามารถพูดอะไรได้เลยเกี่ยวกับ Emac หรือทางเลือกอื่น ฉันคิดว่ามันช่วยในการอ่าน.gvimrcไฟล์ปรับแต่งของคนอื่น หลายคนใส่มันลงบนเว็บ นี่ของเหมือง

อย่าพยายามหลัก binutils ทั้งหมดในครั้งเดียวมีฟังก์ชั่นมากเกินไป แต่รับภาพรวมทั่วไปเพื่อให้คุณทราบว่าจะค้นหาเมื่อต้องการบางสิ่งในอนาคต อย่างไรก็ตามคุณควรทราบพารามิเตอร์ที่สำคัญทั้งหมดสำหรับg++และld(เครื่องมือตัวลิงก์ GCC ที่เรียกใช้โดยอัตโนมัติยกเว้นเมื่อมีการป้องกันอย่างชัดเจน)

นอกจากนี้ฉันอยากรู้อยากเห็นคุณมีรหัสเสร็จและเน้นไวยากรณ์เมื่อคุณรหัส?

การเน้นไวยากรณ์: ใช่และดีกว่า Visual Studio รหัสเสร็จ: Yes- ish ก่อนอื่นฉันต้องยอมรับว่าฉันไม่ได้ใช้รหัส C ++ แม้ใน Visual Studio เพราะ (เทียบกับ VB และ C #) มันไม่ดีพอ ฉันไม่ได้ใช้บ่อยในตอนนี้ แต่อย่างไรก็ตาม GVIM มีการรองรับการเติมโค้ดเนทีฟสำหรับ C ++ รวมกับไลบรารีctagsและปลั๊กอินเช่นtaglistซึ่งเกือบเป็น IDE

จริงๆแล้วสิ่งที่ฉันเริ่มต้นคือบทความโดย Armin Ronacher ก่อนที่จะอ่านข้อความให้ดูที่หน้าจอที่ส่วนท้ายของมัน!

คุณต้องรวบรวมก่อนที่จะได้รับข้อผิดพลาด (ไวยากรณ์) หรือไม่

ใช่. แต่นี่เป็นสิ่งเดียวกันสำหรับ Visual Studio ใช่ไหม (ฉันไม่เคยใช้ทั้งมะเขือเทศ) แน่นอนว่าการเน้นไวยากรณ์จะแสดงเครื่องหมายวงเล็บปีกกาที่ไม่ตรงกัน แต่นั่นคือทั้งหมด

และคุณจะแก้ปัญหาอย่างไร (คิดว่าจุดพัก ฯลฯ ) อีกครั้ง?

ฉันใช้gdbซึ่งเป็นเครื่องมือบรรทัดคำสั่ง DDDนอกจากนี้ยังมีส่วนหน้าแบบกราฟิกที่เรียกว่า gdbเป็นเครื่องมือแก้ไขข้อบกพร่องที่ทันสมัยและสามารถทำทุกสิ่งที่คุณสามารถทำได้ใน IDE สิ่งเดียวที่ทำให้ฉันรำคาญจริงๆคือการอ่านร่องรอยสแต็คเพราะเส้นไม่เยื้องหรือจัดรูปแบบดังนั้นจึงยากที่จะสแกนข้อมูลเมื่อคุณใช้เทมเพลตจำนวนมาก (ซึ่งฉันทำ) แต่สิ่งเหล่านี้ก็ยังทำให้การติดตามสแต็กใน IDEs ยุ่งเหยิงเช่นกัน

อย่างที่ฉันบอกว่าฉันมี 'ความสุข' ในการตั้งค่าขั้นตอนแรกของฉันในการเขียนโปรแกรมภาษาจาวาโดยใช้ windows notepad และคอมไพเลอร์ java บรรทัดคำสั่งในโรงเรียนมัธยมและมันก็ .. ยินดีต้อนรับฝันร้าย! แน่นอนเมื่อฉันสามารถเปรียบเทียบกับหลักสูตรการเขียนโปรแกรมอื่น ๆ ที่ฉันได้กลับมาแล้วที่เรามี IDE ที่เหมาะสม

คุณไม่ควรลองเปรียบเทียบเครื่องมือแก้ไขที่ทันสมัยและสมบูรณ์เช่น Emacs หรือ GVIM กับ Notepad Notepad เป็นตัวTextBoxควบคุมการประดับประดาและสิ่งนี้สร้างความแตกต่างอย่างแท้จริง นอกจากนี้การทำงานบนบรรทัดคำสั่งเป็นประสบการณ์ที่แตกต่างกันมากใน Linux และ Windows Windows cmd.exeพิการอย่างรุนแรง PowerShell ดีกว่ามาก

/ แก้ไข: ฉันควรพูดถึงอย่างชัดเจนว่าGVIM มีการแก้ไขแบบแท็บ (เช่นเดียวกับในการเรียกดูแบบแท็บไม่ใช่ tabs-vs-spaces)! ฉันใช้เวลานานมากในการค้นหาพวกเขาแม้ว่าพวกเขาจะไม่ได้ซ่อนอยู่เลย เพียงพิมพ์:tabeแทน:eไฟล์ธรรมดาเมื่อเปิดไฟล์หรือสร้างไฟล์ขึ้นใหม่และ GVIM จะสร้างแท็บใหม่ การสลับระหว่างแท็บสามารถทำได้โดยใช้เคอร์เซอร์หรือทางลัดต่าง ๆ (ขึ้นอยู่กับแพลตฟอร์ม) คีย์gt(พิมพ์gจากนั้นtในโหมดคำสั่ง) ควรทำงานได้ทุกที่และข้ามไปยังแท็บถัดไปหรือหมายเลขแท็บ nหากได้รับหมายเลข พิมพ์:help gtเพื่อรับความช่วยเหลือเพิ่มเติม


@confuzatron: ไม่ฉันใช้ gdb ด้วยเหตุผลหลายประการ ที่สำคัญที่สุดฉันมักจะทำงานโดยไม่มีเซิร์ฟเวอร์ X ใด ๆ ที่ทำงานอยู่ นอกจากนี้ฉันค่อนข้างอึดอัดกับความจริงที่ว่า DDD ไม่ได้เห็นการปรับปรุงใด ๆ ในเวลานาน ในทางตรงกันข้ามเจ้าของโครงการเพิ่งเปลี่ยนไปและดูเหมือนว่าจะมีการเปลี่ยนแปลงเกิดขึ้น
Konrad Rudolph

ขอบคุณสำหรับข้อมูลแท็บ WRT gvim ไม่เคยใหม่ที่ :)
Letholdrus

VS2010 เน้นข้อผิดพลาดทางไวยากรณ์โดยไม่ต้องรวบรวม
Candy Chiu

@Candy จริง VS2010 เปลี่ยนแปลงหลายสิ่งหลายอย่างในเรื่องนี้และเพิ่มคุณสมบัติขั้นสูงสำหรับการรวบรวมพื้นหลัง แต่ gvim ได้เพิ่มคุณสมบัติมากมายผ่านทางปลั๊กอินในระหว่างนี้ โดยเฉพาะอย่างยิ่งคุณอาจได้รับการเน้นข้อผิดพลาดทางไวยากรณ์โดยไม่ต้องรวบรวมผ่านclang_completeปลั๊กอินตอนนี้ คำตอบนี้มาจาก 2009 และบางส่วนล้าสมัย แต่มีการปรับปรุงในทุกด้านเพื่อให้มีความชัดเจนมากขึ้นหรือน้อยลง
Konrad Rudolph

25

ไม่ต้องตอบซ้ำ แต่ฉันคิดว่าฉันสามารถเพิ่มได้อีกเล็กน้อย

Slickeditเป็น IDE ที่ยอดเยี่ยม

รองรับโค้ดฐานขนาดใหญ่ได้ดีโดยไม่ทำให้ช้าลงหรือใช้เวลาในการจัดทำดัชนีตลอดเวลา (นี่เป็นปัญหาที่ฉันมีกับ cdt ของ eclipse) ความเร็วของ Slickedit น่าจะเป็นสิ่งที่ดีที่สุดเกี่ยวกับเรื่องนี้จริงๆแล้ว
การทำให้โค้ดสมบูรณ์ใช้งานได้ดีและมีตัวเลือกมากมายสำหรับสิ่งต่าง ๆ เช่นการจัดรูปแบบอัตโนมัติการตกแต่งและการปรับโครงสร้างใหม่
มันมีการดีบักแบบบูรณาการ
มีการสนับสนุนปลั๊กอินและชุมชนที่ใช้งานค่อนข้างสร้างพวกเขา
ในทางทฤษฎีคุณควรจะสามารถรวมเข้ากับคนที่ทำไฟล์ makefile แบบดั้งเดิมได้ดีเพราะมันช่วยให้คุณสร้างโครงการโดยตรงจากที่หนึ่ง แต่มันไม่ทำงานอย่างราบรื่นเหมือนที่ฉันชอบเมื่อฉันลอง
นอกเหนือจาก Linux แล้วยังมีรุ่น Mac และ Windows หากคุณต้องการ


23

ในฐานะที่เป็นคนยูนิกซ์สมัยก่อนฉันมักจะใช้ Emacs แต่นั่นมีเส้นโค้งที่สูงชันและค่อนข้างยาวดังนั้นฉันไม่แน่ใจว่าฉันสามารถแนะนำให้กับผู้มาใหม่ได้

ไม่มี IDE "ดี" สำหรับ Linux จริงๆ Eclipse ไม่ดีสำหรับ C / C ++ (CDT กำลังปรับปรุง แต่ยังไม่มีประโยชน์มาก) ส่วนอื่น ๆ ขาดคุณสมบัติทั้งหมดที่คุณกำลังมองหา

จำเป็นอย่างยิ่งที่จะต้องเรียนรู้ว่าเครื่องมือแต่ละตัวทำงานอย่างไร (gcc, make, gdb และอื่น ๆ ) หลังจากที่คุณทำเช่นนั้นคุณอาจพบว่าวิธี Visual Studio ในการทำสิ่งต่าง ๆ มีข้อ จำกัด มาก


Eclipse CDT "ยังมีประโยชน์ไม่มากเลยเหรอ?" การทำอย่างประณีตจะเป็นประโยชน์ ฉันพบว่ามันมีประโยชน์มาก (และใช้งานง่าย)
John Zwinck

"ยังไม่มีประโยชน์มาก": การเติมข้อความอัตโนมัติมักจะไม่ทำงานการนำทางไปยังการประกาศหรือการใช้งานฟังก์ชั่นไม่ทำงานการเน้นไวยากรณ์ไม่ได้ผลการ refactoring ไม่ทำงาน ฯลฯ มันดีกว่าการใช้ vi UI ส่วนหน้าของ GDB เป็นสิ่งเดียวที่ทำให้คุ้มค่าในการใช้งานเลย IMHO
Kristopher Johnson

ฉันไม่ได้ลองปรับโครงสร้างด้วย CDT อีกครั้ง แต่สิ่งอื่น ๆ ดูเหมือนจะใช้ได้ ฉันจะทราบว่าฉันรัน Eclipse ด้วยพารามิเตอร์การกำหนดค่าการใช้หน่วยความจำสูงสุดขนาดใหญ่ (ฉันมี RAM 8-12 GB) แต่ดูเหมือนว่าใช้ได้
John Zwinck

ครั้งล่าสุดที่ฉันลอง Eclipse CDT ตัวแยกไวยากรณ์ / ซีแมนทิกส์สำหรับการเติมข้อมูลอัตโนมัติทำให้ IDE ทั้งหมดค้างเป็นเวลา 8 วินาทีทุกครั้งที่เรียกใช้ มันทำให้คุณสมบัติทั้งหมดไร้ประโยชน์ ฉันไม่อยากจะเชื่อสิ่งที่ไม่ได้ทำงานในเธรดของตัวเอง นี่เป็นสองปีที่แล้วดังนั้นตอนนี้หวังว่าจะได้รับการแก้ไข (ใช่มั้ย)

ฉันพบว่า CDT ยอดเยี่ยมสำหรับการโจมตีใน QT และ Boost บน windows กับ Mingw มันมีปัญหา แต่ในสภาพแวดล้อม Posix ที่สมบูรณ์โดยอัตโนมัติทำงานได้ดีมาก! การนำทางไปสู่การประกาศเป็นจริงหนึ่งหลุมที่จ้องมอง แต่เมื่อพิจารณาว่า C ++ สามารถมีการประกาศเหมือนกันหลายครั้งฉันไม่แปลกใจเลย นี่เป็นปัญหาที่ยากกว่าในการแก้ปัญหามากกว่าใน Java
Chris K

18

ชำระเงิน Netbeans เขียนด้วยภาษาจาวาดังนั้นคุณจะมีสภาพแวดล้อมเดียวกันโดยไม่คำนึงถึงระบบปฏิบัติการของคุณและรองรับได้มากกว่า C ++

ฉันจะไม่พยายามโน้มน้าวคุณเพราะฉันคิดว่า IDEs เป็นทางเลือกส่วนตัวมาก สำหรับฉันแล้วมันปรับปรุงประสิทธิภาพการทำงานของฉันด้วยการทำงานรวดเร็วสนับสนุนภาษาที่ฉันใช้และมีคุณสมบัติมาตรฐานที่คุณคาดหวังจาก IDE


5
ฉันสามารถเพิ่ม +1 ของฉันในสิ่งนี้ netbeans มีตัวแยกวิเคราะห์ภาษา c ++ ที่ดีที่สุดที่ฉันเคยเห็นใน IDE cdt เต้นของ eclipse
Johan Boulé

18

เพียงแค่ติดตามอย่างรวดเร็วสำหรับคำถามนี้ ...

เป็นเวลาหนึ่งเดือนแล้วที่ฉันเริ่มใช้ Vim เป็นเครื่องมือ 'GUI' หลักสำหรับการเขียนโปรแกรม C ++ ใน Linux ในตอนแรกช่วงการเรียนรู้นั้นค่อนข้างสูงชัน แต่หลังจากผ่านไประยะหนึ่งและเมื่อมีตัวเลือกที่เหมาะสมเปิดใช้งานและสคริปต์ที่ใช้งานอยู่ฉันก็รู้สึกติดขัดจริงๆ!

ฉันชอบวิธีที่คุณสามารถปรับแต่ง Vim ให้เหมาะกับความต้องการของคุณ เพียงเพิ่ม / เปลี่ยนการจับคู่คีย์และ Vim นั้นกลายเป็น 'IDE' ที่ให้ผลผลิตสูง

Toolchain สำหรับสร้างและคอมไพล์โปรแกรม C ++ บน Linux นั้นใช้งานง่ายเช่นกัน แต่งหน้าและ g ++ มีเครื่องมือที่คุณจะใช้

ตัวดีบัก DDDนั้นไม่ค่อยดีเท่าไหร่ แต่อาจเป็นเพราะฉันยังไม่มีเวลาที่จะฝึกฝนอย่างถูกต้อง

ดังนั้นสำหรับผู้ที่กำลังมองหา C ++ IDE ที่ดีใน Linux เช่นเดียวกับที่ฉันเคยเป็นทางออกที่ดีที่สุดของคุณวางอยู่กับเครื่องมือมาตรฐานที่มีใน Linux เอง (Vim, g ++, ddd) และอย่างน้อยคุณควรลองใช้ พวกเขาก่อนที่จะมองหา sonething อื่น ...

ท้ายสุด แต่ไม่ท้ายสุดฉันอยากจะขอบคุณKonradสำหรับคำตอบของเขาที่นี่มันช่วยฉันได้จริงๆในการพัฒนาระบบ Linux ขอบคุณ!

ฉันยังไม่ได้ปิดคำถามนี้ดังนั้นผู้คนยังสามารถตอบสนองหรืออาจเพิ่มคำแนะนำหรือส่วนเพิ่มเติมในคำตอบที่ดีอยู่แล้ว ...


คุณสามารถรับคุณสมบัติ IntelliSense-ish เพื่อทำงานใน Vim + ctags ได้หรือไม่? ไม่ใช่แค่กรอกข้อมูลอัตโนมัติ แต่เป็นข้อมูลที่คำนึงถึงบริบทเช่นรายการพารามิเตอร์สำหรับฟังก์ชั่น ฯลฯ ?
kizzx2

@ kizzx2: ใช่มีอยู่หลายตัวเลือก
Fred Nurk


12

คำตอบที่สั้นกว่าคือการเลือก "แก้ไข" สิ่งที่คุณต้องการจากนั้นใช้คอนโซล GDB หรือส่วนหน้า GDB แบบง่าย ๆ เพื่อดีบักแอปพลิเคชันของคุณ debuggers มาพร้อมกับ IDEs แฟนซีเช่น Netbeans sucks สำหรับ C / C ++ ฉันใช้ Netbeans เป็นตัวแก้ไขและ Insight และ GDB console เป็นตัวดีบั๊ก

ด้วยความเข้าใจอย่างถ่องแท้คุณมี GUI ที่ดีและพลังที่แท้จริงของ GDB

ทันทีที่คุณคุ้นเคยกับคำสั่ง GDB คุณจะเริ่มหลงรักมันเพราะคุณสามารถทำสิ่งต่างๆได้โดยไม่ต้องใช้ GUI คุณสามารถใช้แม้กระทั่งใช้Pythonเป็นภาษาสคริปต์ของคุณหากคุณใช้ GDB 7 หรือรุ่นที่ใหม่กว่า

คนส่วนใหญ่ที่นี่ให้ความสนใจ "บรรณาธิการ" ของ IDE มากขึ้น อย่างไรก็ตามหากคุณกำลังพัฒนาโครงการขนาดใหญ่ใน C / C ++ คุณสามารถใช้เวลากับ "debuggers" ได้มากกว่า 70% ผู้ debuggers ของ IDEs แฟนซีอยู่อย่างน้อย 10 ปีหลัง Visual Studio ตัวอย่างเช่น Netbenas มีอินเตอร์เฟสที่คล้ายกันมากกับ Visual Studio แต่โปรแกรมดีบั๊กมีข้อเสียจำนวนหนึ่งเมื่อเทียบกับ Visual Studio

  1. ช้ามากในการแสดงแม้กระทั่งอาร์เรย์ที่มีองค์ประกอบเพียงไม่กี่ร้อยเท่านั้น
  2. ไม่มีการเน้นสำหรับค่าที่เปลี่ยนแปลง (โดยค่าเริ่มต้น visual studio จะแสดงค่าที่เปลี่ยนแปลงในหน้าต่างนาฬิกาเป็นสีแดง)
  3. ความสามารถที่ จำกัด มากในการแสดงหน่วยความจำ
  4. คุณไม่สามารถแก้ไขซอร์สโค้ดจากนั้นเรียกใช้ต่อไป หากข้อผิดพลาดใช้เวลานานในการเข้าชมคุณต้องการเปลี่ยนแหล่งที่มาและใช้การเปลี่ยนแปลงแบบสดและดำเนินการเรียกใช้แอปพลิเคชันของคุณต่อไป
  5. คุณไม่สามารถเปลี่ยน "คำสั่งถัดไป" เพื่อเรียกใช้ ใน Visual Studio คุณสามารถใช้ "ตั้งค่าคำสั่งถัดไป" เพื่อเปลี่ยนวิธีที่แอปพลิเคชันของคุณทำงาน แม้ว่าฟีเจอร์นี้อาจทำให้แอปพลิเคชันของคุณขัดข้องหากไม่ได้ใช้อย่างถูกต้อง แต่จะช่วยให้คุณประหยัดเวลาได้มาก ตัวอย่างเช่นหากคุณพบว่าสถานะของแอปพลิเคชันของคุณไม่ถูกต้อง แต่คุณไม่ทราบว่าเกิดอะไรขึ้นคุณอาจต้องทำการเรียกใช้บางภูมิภาคของซอร์สโค้ดใหม่โดยไม่ต้องรีสตาร์ทแอปพลิเคชันของคุณ
  6. ไม่มีการสนับสนุน STL ในตัวเช่นเวกเตอร์ลิสต์ deque และแผนที่เป็นต้น
  7. ไม่มีจุดชม คุณต้องมีคุณสมบัตินี้เมื่อคุณต้องการหยุดแอปพลิเคชันของคุณ ณ จุดที่มีการเปลี่ยนแปลงตัวแปร คอมพิวเตอร์ที่ใช้ Intel มีจุดเฝ้าดูฮาร์ดแวร์เพื่อให้จุดเฝ้าดูจะไม่ทำให้ระบบของคุณช้าลง อาจใช้เวลาหลายชั่วโมงในการค้นหาข้อบกพร่องที่หายากโดยไม่ใช้จุดเฝ้าดู "Visual Studio" เรียก "watch pointer" เป็น "Data BreakPoint"

รายการอาจยาวกว่านี้มาก

ฉันรู้สึกผิดหวังกับข้อเสียของ Netbeans หรือ IDE อื่น ๆ ที่คล้ายกันดังนั้นฉันจึงเริ่มเรียนรู้ GDB ฉันพบว่า GDB นั้นมีประสิทธิภาพมาก GDB ไม่มี "ข้อเสีย" ทั้งหมดที่กล่าวถึงข้างต้น จริงๆแล้ว GDB นั้นทรงพลังมากมันดีกว่า Visual Studio ในหลาย ๆ ทาง ที่นี่ฉันแค่แสดงให้คุณเห็นตัวอย่างที่ง่ายมาก

ตัวอย่างเช่นคุณมีอาร์เรย์เช่น:

struct IdAndValue
{
  int ID;
  int value;
};


IdAndValue IdAndValues[1000];

เมื่อแอปพลิเคชันของคุณหยุดทำงานและคุณต้องการตรวจสอบข้อมูลใน IdAndValues ตัวอย่างเช่นหากคุณต้องการค้นหาลำดับและค่าในอาร์เรย์สำหรับ "ID" เฉพาะคุณสามารถสร้างสคริปต์ดังต่อไปนี้:

define PrintVal 
set $i=0
printf "ID = %d\n", $arg0
while $i<1000
  if IdAndValues[$i].ID == $arg0
    printf "ordinal = %d, value = %d\n", $i, IdAndValues[$i].vaue
    set $i++
  end
end
end

คุณสามารถใช้ตัวแปรทั้งหมดในแอปพลิเคชันของคุณในบริบทปัจจุบันตัวแปรของคุณเอง (ในตัวอย่างของเราคือ $ i), อาร์กิวเมนต์ที่ส่งผ่าน (ในตัวอย่างของเราคือ $ arg0) และคำสั่ง GDB ทั้งหมด (ในตัวหรือผู้ใช้กำหนด )

ใช้PrintVal 1จากพรอมต์ GDB เพื่อพิมพ์ค่าสำหรับ ID "1"

โดยวิธีการที่ NetBeans มาพร้อมกับคอนโซล GDB แต่โดยใช้คอนโซลคุณสามารถ Netbeans ผิดพลาด และฉันเชื่อว่านั่นเป็นเหตุผลว่าทำไมคอนโซลถูกซ่อนไว้เป็นค่าเริ่มต้นใน NetBeans


จุดดี. แต่น่าเสียดายที่ GDB มีช่วงการเรียนรู้ที่สูงชันมาก ฉันใช้มันมาหลายปีแล้วและฉันก็ยังไม่เคยใช้มาโครและ (แม้ว่าฉันรู้ว่ามันเป็นไปได้ผ่านทางมาโคร!) รหัส STL ใด ๆ ที่ฉันโยนไปมันไม่สามารถดีบั๊กได้ดีไปกว่าไอดีไอสมัยใหม่
Konrad Rudolph

ฉันใช้เวลา 2 วันในการควบคุมคำสั่งส่วนใหญ่ใน GDB เมื่อคุณรู้ถึงพลังดิบของ GBD คุณจะไม่หันกลับมามอง มันจะช่วยคุณประหยัดเวลาได้มากเมื่อคุณแก้ไขบั๊กที่หายาก
Charles Zhang

11

ฉันกำลังใช้ " Geany " พบว่าดี, IDE ที่รวดเร็วและน้ำหนักเบา

ท่ามกลางคุณสมบัติของ Geany คือ :

  • การพับโค้ด
  • การบันทึกเซสชัน
  • คุณสมบัติ IDE พื้นฐานเช่นการเน้นไวยากรณ์แท็บการเยื้องอัตโนมัติและการเติมโค้ดให้สมบูรณ์
  • การจัดการโครงการที่ง่าย
  • สร้างระบบ
  • เครื่องมือเลือกสี (มีประโยชน์อย่างน่าประหลาดในระหว่างการพัฒนาเว็บ)
  • การจำลองเทอร์มินัลในตัว
  • เคล็ดลับการโทร
  • รายการสัญลักษณ์
  • สร้างโครงสร้างทั่วไปให้สมบูรณ์อัตโนมัติ (เช่น if, else, while, ฯลฯ )

10

ถ้าคุณชอบ Eclipse สำหรับ Java ฉันแนะนำ Eclipse CDT แม้จะรองรับ C / C ++ แต่ก็ไม่ได้ทรงประสิทธิภาพเท่าที่ควรสำหรับ Java แต่ยังคงมีคุณสมบัติส่วนใหญ่อยู่ มันมีคุณสมบัติที่ดีชื่อ Managed Project ที่ทำให้การทำงานกับโครงการ C / C ++ ง่ายขึ้นถ้าคุณไม่มีประสบการณ์กับ Makefiles แต่คุณยังสามารถใช้ Makefiles ได้ ฉันใช้รหัส C และ Java และฉันมีความสุขมากกับ CDT ฉันกำลังพัฒนาเฟิร์มแวร์สำหรับอุปกรณ์ฝังตัวใน C และแอปพลิเคชันใน Java ที่พูดถึงอุปกรณ์นี้และเป็นสิ่งที่ดีมากที่ได้ใช้สภาพแวดล้อมเดียวกันสำหรับทั้งสอง ฉันคิดว่ามันอาจทำให้ฉันมีประสิทธิผลมากขึ้น


9

ฉันรักที่ผู้คนคิดถึงคำขอใน IDE ดั้งเดิมอย่างสิ้นเชิง Linux ไม่ใช่ IDE นั่นไม่ใช่ความหมายของคำเหล่านั้น ฉันเรียนรู้ c และ c ++ โดยใช้ vi และ gcc และทำและฉันไม่ได้บอกว่าพวกเขาไม่ใช่เครื่องมือที่เพียงพอ แต่พวกเขาไม่ใช่ IDE แม้ว่าคุณจะใช้เครื่องมือที่ซับซ้อนเช่น vim หรือ emacs หรืออะไรก็ตามที่คุณต้องการ แต่การพิมพ์คำสั่งบนบรรทัดคำสั่งไม่ใช่ IDE

นอกจากนี้คุณทุกคนรู้ว่าการมีอยู่เป็นส่วนหนึ่งของสตูดิโอภาพใช่มั้ย แนวคิดที่ว่า IDE คือ "การ จำกัด " เป็นเรื่องโง่ถ้าคุณสามารถใช้ IDE เพื่อเพิ่มความเร็วบางสิ่ง แต่ก็ยังสามารถถอยกลับไปที่บรรทัดคำสั่งเมื่อจำเป็น

จากทั้งหมดที่กล่าวมาฉันขอแนะนำให้ลองใช้บล็อคโค้ด มันมีการเน้นโค้ดที่เหมาะสมมันเป็นวิธีที่ง่ายดายในการสร้างโปรเจคโค้ดรันมันและอื่น ๆ ซึ่งเป็นแกนหลักของ IDE จริงและดูเหมือนว่าจะค่อนข้างเสถียร การดีบักแย่ ... ฉันไม่เคยเห็นตัวแก้จุดบกพร่องแบบโต้ตอบที่เหมาะสมในชุด linux / unix ใด ๆ gdb มันไม่ได้เป็น หากคุณคุ้นเคยกับการดีบักสไตล์สตูดิโอภาพคุณโชคไม่ดีนัก

อย่างไรก็ตามฉันจะไปเก็บของของฉันฉันรู้ว่าฝูงชนลินุกซ์ที่ดูเพียงอย่างเดียวจะตะโกนสิ่งนี้และพาฉันออกนอกเมืองในเวลาไม่นาน


คุณมีประเด็น มันไม่ใช่ IDE อย่างที่เรารู้ อย่างไรก็ตามมันน่าสนใจที่ OP โหวตให้คำตอบนั้น! การตอกย้ำสีของฉันไปยังเสา: ฉันเป็นแฟนของบรรทัดคำสั่ง makefiles
ScrollerBlaster

ในที่สุดใครบางคนที่มีสมอง ... ฉันเดาว่าคนอื่น ๆ แค่เขียนโค้ดเรื่องเล็กน้อยหากพวกเขาสามารถทำทุกอย่างด้วย emacs / vim
Pippo


7

ฉันค่อนข้างชอบUltimate ++ของ IDE มันมีคุณสมบัติบางอย่างที่ออกแบบมาเพื่อใช้กับห้องสมุดของตัวเอง (ซึ่ง BTW เป็นเครื่องมือที่ดีถ้าคุณไม่ต้องการซื้อทั้ง GTK + หรือ QT) แต่มันใช้งานได้ดีกับโครงการ C ++ ทั่วไป มันให้การกรอกรหัสที่ดีการระบายสีไวยากรณ์ที่ดีการดีบักในตัวและคุณสมบัติอื่น ๆ ทั้งหมดที่สนับสนุน IDEs ที่ทันสมัยที่สุด


ว้าว! เกี่ยวกับภาพหน้าจอที่ดูน่าทึ่งจริงๆ! ฉันจะลองทำดู คุณรู้หรือไม่ว่าฉันต้องจ่ายเงินเพื่อมัน? (ยังไม่ชัดเจนในเว็บไซต์ Ultimate ++)

ไม่ฟรีใน "คำพูด" "เบียร์" และ "ขี่" พวกเขาจะได้ค่อนข้างเปิดเกี่ยวกับการยอมรับแพทช์และปล่อยบ่อยมากดังนั้นจึงเป็นโอเพนซอร์สที่จะได้รับ :)
dguaraglia

7

ผมขอแนะนำให้codeblocks มันไม่หนักเท่า Eclipse และได้รับการสนับสนุนโครงการ Visual Studio


6

บางทีโครงการเครื่องมือ Linuxสำหรับ Eclipse อาจเติมเต็มความต้องการของคุณ?

โครงการ Linux Tools มีเป้าหมายเพื่อนำ C และ IDE C ++ มาใช้กับนักพัฒนา Linux เราสร้างบนการแก้ไขแหล่งที่มาและการดีบักคุณสมบัติของ CDT และรวมเครื่องมือการพัฒนาเนทีฟที่ได้รับความนิยมเช่น GNU Autotools, Valgrind, OProfile, RPM, SystemTap, GCov, GProf, LTTng เป็นต้นโครงการปัจจุบัน ได้แก่ LTTng ผู้ติดตามและวิเคราะห์ เครื่องมือแก้ไข RPM .spec, Autotools build integration, เครื่องมือวิเคราะห์การใช้งาน Valgrind heap และเครื่องมือรวบรวมโปรไฟล์ OProfile


6

บน Linux มี IDE มากมาย:

ในของฉันประสบการณ์ที่มีค่ามากที่สุดคือEclipseและQt Creator ทั้งสองมีคุณสมบัติ "มาตรฐาน" ทั้งหมด (เช่นการเติมข้อความอัตโนมัติการเน้นไวยากรณ์การดีบักเกอร์การรวม Git) เป็นที่น่าสังเกตว่า Eclipse ยังจัดเตรียมฟังก์ชันการ refactoring ในขณะที่ Qt Creator ให้การทำงานร่วมกับ Valgrind และสนับสนุนการปรับใช้กับเป้าหมายระยะไกล

นอกจากนี้CLion IDEเชิงพาณิชย์ก็ดูดีมาก (แต่ฉันไม่ได้ใช้อย่างกว้างขวาง)


5

ฉันได้ยินว่าแอนจูตาค่อนข้างเนียนสำหรับผู้ใช้ Gnome ฉันเล่นกับ KDevelop นิดหน่อยและก็ดี แต่มันขาดฟีเจอร์ตามเข็มนาฬิกา รหัส :: บล็อกยังมีแนวโน้มมากและฉันชอบที่ดีที่สุด


5

Sun Studio รุ่น 12 เป็นดาวน์โหลดฟรี (FREE และการสนับสนุนการชำระเงินที่สามารถใช้ได้) - http://developers.sun.com/sunstudio/downloads/thankyou.jsp?submit=%A0FREE+Download%A0%BB%A0

ฉันแน่ใจว่าคุณมีโค้ดที่สมบูรณ์และการสนับสนุนการดีบักรวมถึงการสนับสนุนปลั๊กอินใน IDE นี้

Sun Studio พร้อมใช้งานสำหรับ Linux และ Solaris ฟอรั่ม: http://developers.sun.com/sunstudio/community/forums/index.jsp ฟอรัม Linux ของ Sun Studio: http://forum.sun.com/forum.jspa?forumID=855

ฉันอยากฟังความคิดเห็นของคุณเกี่ยวกับเครื่องมือนี้

BR,
~ A



5

และจากนั้นฉันสังเกตเห็นว่านี่ไม่ใช่วิธีการทำงานของคุณที่นั่น * และฉันโยนทุกอย่างออกไปใช้เวลาสองสามวันในการอ่านคู่มือตั้งค่าเปลือก (ทุบตี) ตั้งสภาพแวดล้อม GVIM เรียนรู้ GCC / binutils toolchain ทำและ gdb และใช้ชีวิตอย่างมีความสุขตลอดไป

ฉันเห็นด้วยเป็นส่วนใหญ่ แต่ปัญหาก็เป็นหนึ่งในการรับรู้: เราลืมว่ามันยากที่จะทำให้เกิดผลใน IDE ที่เลือก (หรือสภาพแวดล้อมอื่น ๆ ) ฉันพบว่า IDE (Visual Studio, NetBeans, Eclipse) มีความยุ่งยากในหลาย ๆ ด้าน

ในฐานะที่เป็นคนยูนิกซ์สมัยก่อนฉันมักจะใช้ Emacs แต่นั่นมีเส้นโค้งที่สูงชันและค่อนข้างยาวดังนั้นฉันไม่แน่ใจว่าฉันสามารถแนะนำให้กับผู้มาใหม่ได้

ฉันสองที่; ใช้ Emacs เป็นตัวแก้ไขหลักของฉันทั้งบน Linux และบน MSW (XP2, W2K) ฉันไม่เห็นด้วยว่ามันมีช่วงการเรียนรู้ที่สูงชันแต่จะบอกว่าเพราะคุณสมบัติจำนวนมากมันมีช่วงการเรียนรู้ที่ยาวนาน คุณสามารถทำงานได้ในเวลาอันสั้น แต่ถ้าคุณต้องการคุณสามารถเรียนรู้คุณสมบัติใหม่ของมันได้ในอีกไม่กี่ปีข้างหน้า

อย่างไรก็ตาม - อย่าคาดหวังว่าฟีเจอร์ทั้งหมดของ Emacs จะพร้อมใช้งานในเมนูแบบเลื่อนลงมีฟังก์ชั่นการทำงานมากเกินกว่าที่จะหาได้

ในขณะที่ฉัน metioned ฉันใช้ GNU Emacs บน MSW เป็นเวลาหลายปี และมันก็ทำงานได้ดีกับ Visual Studio จนกระทั่งฉัน "อัปเกรด" เป็น 2008 ตอนนี้บางครั้งก็ล่าช้าหลายวินาทีก่อนที่จะรีเฟรชไฟล์จากดิสก์ เหตุผลหลักสำหรับการแก้ไขในหน้าต่าง VS คือคุณลักษณะการเติมโค้ด "Intellisense"



5

แม้ว่าฉันจะใช้ Vim เพื่อนร่วมงานของฉันบางคนใช้SlickEditซึ่งดูดีมาก ฉันไม่แน่ใจเกี่ยวกับการดีบักแบบรวมเนื่องจากเราไม่สามารถทำเช่นนั้นได้ในโครงการเฉพาะของเรา

SlickEdit มีการสนับสนุนที่ดีสำหรับการนำทางฐานรหัสขนาดใหญ่พร้อมการอ้างอิงโยงและการข้ามแท็ก แน่นอนว่ามันมีสิ่งพื้นฐานเช่นการเน้นไวยากรณ์และการเติมโค้ดให้สมบูรณ์ด้วย


5

ฉันใช้ Eclipse CDT และ Qt Creator (สำหรับแอปพลิเคชัน Qt)

นั่นคือความชอบของฉัน มันเป็นคำถามที่มีการชี้นำและมีคำตอบมากมายเท่าที่มีนักพัฒนา :)


4

SlickEdit ฉันใช้และรัก SlickEdit มาตั้งแต่ปี 2005 ทั้งบน Windows และบน Linux ฉันยังมีประสบการณ์การทำงานใน Visual Studio (5, 6, 2003, 2005) และเพียงแค่ใช้ Emacs และบรรทัดคำสั่ง ฉันใช้ SlickEdit กับ makefiles ภายนอกเพื่อนร่วมทีมของฉันบางคนใช้ SlickEdit ส่วนคนอื่นใช้ Emacs / vi ฉันไม่ได้ใช้ดีบักเกอร์รวม, การควบคุมเวอร์ชันรวม, ระบบบิลด์อินรวม: โดยทั่วไปฉันพบว่าการบูรณาการมากเกินไปที่จะเจ็บปวดอย่างแท้จริง SlickEdit นั้นแข็งแกร่ง (มีข้อบกพร่องน้อยมาก) รวดเร็วและใช้งานง่าย มันเหมือนรถเยอรมันรถคนขับ

SlickEdit เวอร์ชั่นใหม่ล่าสุดดูเหมือนจะมีคุณสมบัติมากมายที่ไม่สนใจฉันฉันกังวลเล็กน้อยว่าผลิตภัณฑ์จะมีการบวมและเจือจางในอนาคต สำหรับตอนนี้ (ฉันใช้ V13.0) มันเยี่ยมมาก



3

หากคุณใช้เสียงเรียกเข้าเป็นเวลานานคุณควรทำให้มันเป็น IDE ของคุณ มีบริการเสริมมากมาย ฉันพบว่ามีประโยชน์หลายอย่างและเรียบเรียงที่นี่ให้ดูมัน

และอีกมากมายในซีรี่ส์เคล็ดลับและเทคนิค vi / vim ตรงนั้น

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