C คอมไพเลอร์สำหรับ Windows? [ปิด]


125

ฉันทำงานบน Linux ได้ดีโดยใช้ gcc เป็นคอมไพเลอร์ C ของฉัน แต่ต้องการโซลูชัน Windows ความคิดใด ๆ ? ฉันเคยดูDev-C ++ จาก Bloodshedแต่กำลังมองหาตัวเลือกเพิ่มเติม


ตรวจสอบระบบย่อยของ Windows สำหรับ Linux ที่เปิดตัวในปี 2017 ซึ่งจะช่วยให้คุณสามารถเรียกใช้เครื่องมือ linux ดั้งเดิมเช่น gcc ได้บน Windows ดู: docs.microsoft.com/en-us/windows/wsl/install-win10และ howtogeek.com/249966/…
Evan Rosica

คำตอบ:


79

คุณสามารถใช้ GCC บน Windows โดยการดาวน์โหลดMinGW ( ยกเลิก ) หรือทายาทMinGW-w64


1
stackoverflow.com/questions/29205033/… - แต่การใช้ MinGW ใน Windows ไม่สามารถแก้ปัญหาในการจัดการ LibVLC และ Gstreamer ได้ โดยใช้ MinGW ทำให้ไฟล์เรียกทำงานผิดพลาด มีทางออกที่ดีกว่านี้หรือไม่?

1
แม้ว่า mingw จะเป็นโปรเจ็กต์ที่ยอดเยี่ยม แต่ก็ไม่เหมาะกับฉันเมื่อฉันต้องการรวบรวมผู้บริหาร Windows ใน Linux
Vijay Kumar Kanta

36

คุณสามารถรับVisual C ++ Express Edition ได้โดยตรงจาก Microsoft หากคุณต้องการบางสิ่งที่กำหนดเป้าหมายไปที่ Win32 มิฉะนั้น MinGW หรือ lcc ตามที่แนะนำที่อื่น


3
Visual Studio นั้นยอดเยี่ยม แต่ถ้าพวกเขาใช้ linux / gcc ในคลาสมันอาจไม่ใช่ตัวเลือกที่ดีที่สุด
Joel Coehoorn

1
ปัญหาคือ C และ C ++ เป็นภาษาที่แตกต่างกัน รหัส C ไม่ทำงานใน C ++ เสมอไป
tloach

9
ฉันเชื่อว่า Visual C ++ ยังมีคอมไพเลอร์โหมด C
Alex M

4
Stroustrup อธิบายไว้ที่นี่: public.research.att.com/~bs/bs_faq.html#C-is-subset ฉันคิดว่าส่วนที่แย่ที่สุดคือ sizeof () ที่ไม่ตรงกันสำหรับอักขระและ ints รวมทั้งคำหลักที่เพิ่มใน C ++
Alex M

17
ดังที่ @Richard กล่าวในความคิดเห็น: VC ++ ขาดคุณสมบัติ C99
jfs

23

GCC แพร่หลาย เป็นที่เชื่อถือและเข้าใจกันดีจากผู้คนหลายพันคนในหลายสิบชุมชน

Visual Studio อาจเป็น IDE ที่ดีที่สุดที่เคยพัฒนามา มันมีคอมไพเลอร์ที่ยอดเยี่ยมอยู่ข้างใต้ แต่เป็นเฉพาะ Windows เท่านั้น

หากคุณกำลังเล่นอยู่รับ GCC ได้ฟรี หากคุณกังวลเกี่ยวกับ platfroms หลายรายการก็คือ GCC หากคุณกำลังพูดถึงการพัฒนา Windows อย่างจริงจังให้ดาวน์โหลด Visual Studio


ขณะนี้Visual Studio Codeมีการข้ามแพลตฟอร์มที่มีฟังก์ชันการทำงานเหมือนกันมากหรือน้อย
Dr_Zaszuś

19

คุณสามารถใช้ gcc ผ่าน cygwin ได้ตลอดเวลา


13
สิ่งนี้เชื่อมโยงแอปของคุณกับ Cygwin DLL ซึ่งเป็นเรื่องที่น่ารำคาญในความคิดของฉัน
Alex M

ฉันเห็นด้วย แต่ถ้าแอปพลิเคชันมีตัวติดตั้งสามารถรวม dll ได้
UnkwnTech

13
ใช้อ็อพชัน --mno-cygwin เมื่อคอมไพล์ภายใต้ cygwin สิ่งนี้ทำให้มันรวบรวมไบนารี MinGW ไม่จำเป็นต้องใช้ Cygwin DLL
Colin

5
-mno-cygwinไม่รองรับอีกต่อไป - ติดตั้งแพคเกจข้ามคอมไพเลอร์ MinGW ที่เหมาะสมกับแพลตฟอร์มของคุณแทน
Christoph

17

มีคอมไพเลอร์ C ฟรีอีกตัวสำหรับ Windows: Pelles C.

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

URL: http://www.smorgasbordet.com/pellesc/


12

ผมเองได้รับการมองในการใช้ MinGW (สิ่งที่ใช้นองเลือด) กับรหัสบล็อก IDE

ฉันกำลังพิจารณาที่จะใช้คอมไพเลอร์Digital Mars C / C ++

ทั้งสองดูเหมือนจะได้รับการยกย่องอย่างดี


Digital Mars C / C ++ มีมาระยะหนึ่งแล้วและทำได้ดี อย่างไรก็ตามคุณจะพบปัญหาการเชื่อมโยงสำหรับไลบรารีเนื่องจากใช้รูปแบบไฟล์ออบเจ็กต์ที่ไม่ธรรมดา หากคุณสามารถรับซอร์สโค้ดได้นั่นก็ไม่ใช่ปัญหามากนัก ฉันไม่เคยใช้ แต่มีเครื่องมือแปลงรูปแบบไฟล์
BCS

8

คุณอาจลองใช้Code :: Blocksซึ่งเป็น IDE ที่ดีกว่าและมาพร้อมกับ MinGW GCC! ฉันได้ใช้มันและมันก็เป็น IDE ฟรีแวร์ที่ดีเกินไปสำหรับ C / C ++


@zeboidlund และเวอร์ชัน winxp ของโพสต์คืออะไร?
Pacerier

8

GCC ไม่ใช่คอมไพเลอร์เฉพาะของ linux ในทางเทคนิค มันเป็นคอมไพเลอร์ c / c ++ ที่เป็นไปตามมาตรฐานและฉันใช้สำหรับโปรแกรม windows เป็นประจำทุกวัน คงดีที่สุดที่คุณจะใช้มันจนกว่าคุณจะรู้สึกสบายใจกับสิ่งอื่นมากขึ้น

ฉันขอแนะนำให้คุณใช้การกระจาย MinGW ของ GCC ที่จะรวบรวมโปรแกรมของคุณสำหรับ windows โดยใช้ไลบรารีมาตรฐานเป็นต้น

หากคุณกำลังมองหา IDE ฉันมีคำแนะนำสองข้อ Visual Studio เป็นเวอร์ชันของ Microsoft และแม้ว่าจะมีปัญหา แต่ก็เป็นIDE ที่ยอดเยี่ยมสำหรับการทำงานกับโค้ด อย่างไรก็ตามหากคุณกำลังมองหาสิ่งที่มีน้ำหนักเบากว่าเล็กน้อย CodeBlocks ก็ค่อนข้างดีและมีประโยชน์เพิ่มเติมในการใช้คอมไพเลอร์ใด ๆ ที่คุณติดตั้งไว้ (รวมถึง GCC หลายรูปแบบและ Microsoft Compiler ที่มาพร้อมกับ Visual Studio) และความสามารถในการเปิดไฟล์โครงการจาก IDE อื่น ๆ นอกจากนี้ยังทำงานบน linux ด้วยดังนั้นคุณสามารถทำให้การเปลี่ยนแปลงนั้นง่ายขึ้นสำหรับตัวคุณเอง

โดยส่วนตัวแล้วฉันชอบ GCC แต่นั่นเป็นเพียงฉัน หากคุณต้องการโซลูชัน Microsoft จริงๆ VS คือหนทางที่จะไป


7

MinGWจะแปลโดยตรงจาก gcc สำหรับ windows หรือคุณอาจต้องการตรวจสอบLCC , vanilla c (มากหรือน้อย) ด้วย IDE Pelles Cดูเหมือนจะมีพื้นฐานมาจาก lcc และมี IDE ที่ค่อนข้างดีกว่าแม้ว่าฉันจะไม่ได้ใช้เป็นการส่วนตัว แน่นอนว่ามีMSVC Express Editionอยู่เสมอซึ่งฟรี แต่นั่นคือคำเรียกร้องของคุณ


6

มหาวิทยาลัยส่วนใหญ่ให้การเข้าถึงของ Microsoft DreamSpark

หากคุณกำลังใช้ GCC / Linux ในชั้นเรียนเพียงแค่ติดตั้งอูบุนตู Windows เป็นแพลตฟอร์มที่แย่มากสำหรับการพัฒนา C


16
Windows เป็นแพลตฟอร์มที่แย่มากสำหรับการพัฒนาทั้งหมด คงที่สำหรับคุณ
notbad.jpeg

4
เป็นตัวเลือกที่ดีที่สุดสำหรับ Visual Basic คุณไม่สามารถปฏิเสธได้!
rlms

1
@sweeneyrod: เพื่อความยุติธรรมการใช้ VB เพื่อพัฒนาแอพสำหรับ Wine ก็ค่อนข้างดี
Matt Joiner

ปัญหาของบางสิ่งที่เข้าถึงได้ผ่านทางมหาวิทยาลัยคือหลังจากจบชั้นเรียนแล้วคุณไม่มีทางที่จะใช้ทักษะที่คุณทำงานอย่างหนักเพื่อให้ได้มา
richard1941

@ richard1941: ไม่ใช่ความตั้งใจในมหาวิทยาลัยที่จะนำไปใช้กับอุตสาหกรรมเช่นเดียวกับเทคโนโลยีที่คุณเรียนในชั้นเรียน
Matt Joiner

5

โปรดใช้ความระมัดระวังในการใช้คอมไพเลอร์ C ไม่ใช่ C ++ หากคุณกำลังทำ C จริงๆในขณะที่โปรแกรมส่วนใหญ่ใน C จะทำงานโดยใช้คอมไพเลอร์ C ++ ก็มีความแตกต่างเพียงพอที่อาจเกิดปัญหาได้ ฉันเห็นด้วยกับคนที่แนะนำให้ใช้ gcc ผ่าน cygwin

แก้ไข:
http://en.wikipedia.org/wiki/Compatibility_of_C_and_C%2B%2Bแสดงความแตกต่างที่สำคัญบางประการ


คุณสามารถอธิบายรายละเอียดเกี่ยวกับ "ความแตกต่างที่เพียงพอ" ได้หรือไม่
ทำเครื่องหมาย


2
คอมไพเลอร์ C ++ ใด ๆ ก็จะคอมไพล์ C ด้วยเช่นกันโดยปกติแล้วโหมดคอมไพเลอร์จะถูกเลือกโดยอัตโนมัติตามนามสกุลไฟล์ แต่คอมไพเลอร์ทุกตัวยังมีตัวเลือกในการบังคับโหมด C หรือ C ++ โดยไม่คำนึงถึงชื่อไฟล์
Michael Burr



3

ฉันมาสายปาร์ตี้นี้ แต่สำหรับคน C ใน Windows ในอนาคต Visual Studio จะกำหนดเป้าหมาย C90 แทน C99 ซึ่งเป็นสิ่งที่คุณจะได้รับจาก * nix ฉันกำลังกำหนดเป้าหมาย C99 บน Windows โดยใช้ Sublime Text 2 ควบคู่กับ Cygwin



1

Visual C ++ Expressเป็น IDE ที่ดีและฟรีสำหรับ Windows ซึ่งมาพร้อมกับคอมไพเลอร์

หากคุณคุ้นเคยกับโซลูชันบรรทัดคำสั่งโดยทั่วไปและโดยเฉพาะอย่างยิ่ง gcc MinGWหรือCygwinอาจจะทำให้คุณได้มากขึ้น ทั้งยังฟรี


1

มีบางความคิดเห็นที่ชี้ให้เห็นว่า C ไม่ใช่ C ++ แม้ว่าจะเป็นเรื่องจริง แต่ก็จริงที่คอมไพเลอร์ C ++ จะคอมไพล์ C ด้วย - โดยปกติโหมดคอมไพเลอร์จะถูกเลือกโดยอัตโนมัติตามนามสกุลไฟล์ แต่คอมไพเลอร์ทุกตัวยังมีตัวเลือกในการบังคับใช้โหมด C หรือ C ++ โดยไม่คำนึงถึงชื่อไฟล์

ดังนั้นเลือกคอมไพเลอร์ C ++ ฟรีที่คุณพอใจที่สุดกับ gcc, VC ++ Express, Digital Mars ไม่ว่าจะอะไรก็ตาม ใช้ IDE ที่คุณชอบที่สุด emacs, vim, VC ++ Express, Code :: Blocks, Bloodshed - ไม่ว่าอะไรก็ตาม

เครื่องมือใด ๆ เหล่านี้จะเพียงพอสำหรับการเรียนรู้ โดยส่วนตัวแล้วเนื่องจากคุณกำลังถามเกี่ยวกับ Windows ฉันจึงเลือก VC ++ Express - เป็น IDE ที่ยอดเยี่ยมฟรีและจะรวบรวมโปรแกรม C ได้ดี


1
พูดจากประสบการณ์: VC เป็นคอมไพเลอร์ C ที่น่ากลัว อะไรก็ตามที่ทันสมัยที่มีอยู่ใน VC สำหรับ C ++ มันเยี่ยมมาก ... สำหรับ C มันแย่มาก
zeboidlund

0

มันขึ้นอยู่กับสิ่งที่คุณใช้ในชั้นเรียน

หากห้องทดลองและงานที่ได้รับมอบหมายอยู่ใน linux คุณอาจต้องการโซลูชัน MinGW หากอยู่ใน windows ให้รับ Visual Studio Express


0

คุณไม่สามารถรับ Visual Studio Student Addition เวอร์ชันฟรีจากโรงเรียนของคุณได้หรือไม่? มหาวิทยาลัยส่วนใหญ่มีโครงการให้ซอฟต์แวร์ฟรีแก่นักศึกษา


1
ไม่เขาถูกต้อง มีโปรแกรมพิเศษชื่อ "Dream Spark" ไม่ใช่ว่าฉันจะสนับสนุน Microsoft ที่ส่อเสียดเช่นนี้
Matt Joiner

0

คุณหมายถึง Dev-C ++ ของ Bloodshed? เป็น IDE ภาพที่ดีสำหรับ C ++ ซึ่งใช้ gcc ของ MinGW สำหรับ Windows เป็นคอมไพเลอร์เบื้องหลัง โครงการนี้ถูกทิ้งไประยะหนึ่ง (ในความคิดของฉันการใช้ Delphi เพื่อพัฒนา C ++ IDE เป็นสิ่งที่โง่มากที่ต้องทำเพื่อดึงดูดความสนใจของนักพัฒนา) อย่างไรก็ตามไม่มีอะไรที่จะหยุดคุณจากการใช้งานและอัปเดต gcc เวอร์ชัน MinGW ใช้เป็นเวอร์ชันล่าสุด - นอกเหนือจากที่ได้รับอนุญาตจาก GPL


0

ฉันใช้ DEV C ++, CygWin หรือ Visual C ++ Express ของ BloodShed ซึ่งทั้งหมดนี้ฟรีและใช้งานได้ดี ฉันพบว่าสำหรับฉัน DEV C ++ ทำงานได้ดีที่สุดและเป็นเกมที่เล่นโวหารน้อยที่สุด คอมไพเลอร์แต่ละตัวมีนิสัยใจคอและความแตกต่างของตัวเองคุณต้องลองใช้สักสองสามอันแล้วค้นหาอันที่คุณพอใจที่สุด ฉันชอบข้อเท็จจริงที่ว่า DEV C ++ อนุญาตให้ฉันเปลี่ยนฟอนต์ที่ใช้ในตัวแก้ไข ฉันชอบแบบอักษร Proggy Programming!


-1

คอมไพเลอร์ Windows C ++ ต้องใช้งานได้

นอกจากนี้ตรวจสอบMinGW


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