Trình biên dịch C cho Windows? [đóng cửa]


125

Tôi ổn khi làm việc trên Linux bằng cách sử dụng gcc làm trình biên dịch C của mình nhưng muốn có một giải pháp Windows. Có ý kiến ​​gì không? Tôi đã xem xét Dev-C ++ từ Bloodshed nhưng đang tìm kiếm nhiều tùy chọn hơn.


Hãy xem Hệ thống con của Windows dành cho Linux được giới thiệu vào năm 2017. Điều này cho phép bạn chạy các công cụ linux gốc như gcc ngay trên Windows. Xem: docs.microsoft.com/en-us/windows/wsl/install-win10 , và howtogeek.com/249966/...
Evan Rosica

Câu trả lời:


79

Bạn có thể sử dụng GCC trên Windows bằng cách tải xuống MingW (đã ngừng sản xuất ) hoặc Mingw-w64 kế nhiệm của nó .


1
stackoverflow.com/questions/29205033/… - Nhưng việc sử dụng MinGW trong Windows không giải quyết được các vấn đề để xử lý LibVLC và Gstreamer. Bằng cách sử dụng MinGW làm sụp đổ các tệp thực thi. Có giải pháp nào tốt hơn không?

1
Mặc dù mingw là một dự án tuyệt vời, nhưng nó không phù hợp với tôi khi tôi muốn biên dịch tệp thi hành Windows. trong Linux.
Vijay Kumar Kanta,

36

Bạn có thể tải Visual C ++ Express Edition trực tiếp từ Microsoft, nếu bạn muốn thứ gì đó nhắm mục tiêu Win32. Nếu không thì MinGW hoặc lcc, như được đề xuất ở những nơi khác.


3
Visual Studio rất tuyệt, nhưng nếu họ đang sử dụng linux / gcc trong lớp thì có lẽ không phải là lựa chọn tốt nhất.
Joel Coehoorn 22/09/08

1
Vấn đề là C và C ++ là các ngôn ngữ khác nhau. Mã C không phải lúc nào cũng hoạt động trong C ++.
tloach 22/09/08

9
Tôi tin rằng Visual C ++ cũng có trình biên dịch C-mode.
Alex M

4
Stroustrup làm rõ điều đó ở đây: public.research.att.com/~bs/bs_faq.html#C-is-subset Tôi nghĩ phần tệ nhất là kích thước không khớp cho các ký tự và int, cộng với các từ khóa được thêm vào trong C ++.
Alex M

17
Như @Richard đã nói trong nhận xét: VC ++ thiếu các tính năng của C99.
jfs 22/02/09

23

GCC có mặt khắp nơi. Nó được hàng nghìn người trên hàng chục cộng đồng tin cậy và hiểu rõ.

Visual Studio có lẽ là IDE tốt nhất từng được phát triển. Nó có một trình biên dịch tuyệt vời bên dưới nó. Nhưng nó hoàn toàn chỉ dành cho Windows.

Nếu bạn chỉ chơi, hãy tải GCC - miễn phí. Nếu bạn lo lắng về nhiều mặt phẳng, đó là GCC. Nếu bạn đang nói về việc phát triển Windows nghiêm túc, hãy tải Visual Studio.


Hiện tại Visual Studio Codecó một nền tảng đa nền tảng, với ít nhiều chức năng giống nhau.
Dr_Zaszuś

19

Bạn luôn có thể sử dụng gcc thông qua cygwin.


13
Điều này liên kết ứng dụng của bạn với Cygwin DLL, theo ý kiến ​​của tôi, điều này thực sự gây khó chịu.
Alex M

Tôi đồng ý, nhưng nếu ứng dụng có trình cài đặt, người ta có thể gói dll.
UnkwnTech 22/09/08

13
Sử dụng tùy chọn --mno-cygwin khi biên dịch dưới cygwin. Điều này làm cho nó biên dịch các mã nhị phân MinGW; không cần Cygwin DLL.
Colin

5
-mno-cygwinkhông còn được hỗ trợ - cài đặt MinGW gói cross-trình biên dịch thích hợp cho nền tảng của bạn thay vì
Christoph

17

Có một trình biên dịch C miễn phí khác dành cho Windows: Pelles C.

Pelles C là một bộ công cụ phát triển hoàn chỉnh cho Windows và Windows Mobile. Nó chứa trong số những thứ khác như trình biên dịch C tối ưu hóa, trình biên dịch macro, trình liên kết, trình biên dịch tài nguyên, trình biên dịch tin nhắn, tiện ích tạo và cài đặt trình xây dựng cho cả Windows và Windows Mobile. Nó cũng chứa một môi trường phát triển tích hợp (IDE) với quản lý dự án, trình gỡ lỗi, trình chỉnh sửa mã nguồn và trình chỉnh sửa tài nguyên cho hộp thoại, menu, bảng chuỗi, bảng tăng tốc, bitmap, biểu tượng, con trỏ, con trỏ động, video hoạt hình (AVI không có âm thanh), phiên bản và bản kê khai XP.

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


12

Cá nhân tôi đã xem xét sử dụng MinGW (những gì Bloodshed sử dụng) với IDE Code Blocks .

Tôi cũng đang xem xét sử dụng trình biên dịch Digital Mars C / C ++ .

Cả hai dường như được đánh giá tốt.


Digital Mars C / C ++ đã xuất hiện được một thời gian và hoạt động tốt. Tuy nhiên, bạn sẽ gặp phải các vấn đề liên kết cho các thư viện vì nó sử dụng định dạng tệp đối tượng không quá phổ biến. Nếu bạn có thể nhận được mã nguồn thì không phải là vấn đề quá lớn. Ngoài ra, tôi chưa bao giờ sử dụng chúng nhưng có các công cụ chuyển đổi định dạng tệp.
BCS

8

Bạn có thể thử Code :: Blocks , IDE tốt hơn và đi kèm với MinGW GCC! Tôi đã sử dụng nó và nó là một IDE phần mềm miễn phí quá tốt cho C / C ++.


@zeboidlund, Và phiên bản winxp của bài đăng là gì?
Pacerier

8

Về mặt kỹ thuật, GCC không phải là một trình biên dịch cụ thể cho linux. Nó là một trình biên dịch c / c ++ tuân thủ các tiêu chuẩn và tôi sử dụng nó cho các chương trình windows hàng ngày. Tốt nhất là bạn nên sử dụng nó cho đến khi bạn cảm thấy thoải mái hơn với một thứ khác.

Tôi khuyên bạn nên sử dụng phân phối MinGW của GCC. Điều đó sẽ biên dịch các chương trình của bạn nguyên bản cho các cửa sổ, sử dụng thư viện tiêu chuẩn, v.v.

Nếu bạn đang tìm kiếm một IDE, tôi có hai đề xuất. Visual Studio là phiên bản của Microsoft và mặc dù nó có những vấn đề, nhưng nó là một IDE tuyệt vời để làm việc với mã. Tuy nhiên, nếu bạn đang tìm kiếm thứ gì đó nhẹ hơn một chút, CodeBlocks cũng khá tốt và có thêm lợi ích là có thể sử dụng cơ bản bất kỳ trình biên dịch nào bạn đã cài đặt (bao gồm một số dạng GCC và Microsoft Compiler đi kèm với Visual Studio) và có thể mở các tệp dự án từ các IDE khác. Ngoài ra, nó cũng chạy trên linux, vì vậy bạn có thể tự mình thực hiện quá trình chuyển đổi đó dễ dàng hơn.

Cá nhân tôi thích GCC hơn, nhưng đó chỉ là tôi. Nếu bạn thực sự muốn Giải pháp Microsoft, VS là con đường để đi.


7

MinGW sẽ là một bản dịch trực tiếp từ gcc cho windows, hoặc bạn có thể muốn kiểm tra LCC , vanilla c (nhiều hơn hoặc ít hơn) bằng IDE. Pelles C dường như dựa trên lcc và có IDE đẹp hơn một chút, mặc dù tôi chưa sử dụng nó cá nhân. Tất nhiên luôn có Phiên bản MSVC Express miễn phí, nhưng đó là cuộc gọi của bạn.


6

Hầu hết các trường đại học cung cấp cho bạn quyền truy cập vào Microsoft Dreamspark .

Nếu bạn đang sử dụng GCC / Linux trong lớp, chỉ cần cài đặt Ubuntu . Windows là một nền tảng khủng khiếp để phát triển C.


16
Windows là một nền tảng khủng khiếp cho mọi sự phát triển. Đã sửa lỗi đó cho bạn.
notbad.jpeg

4
Đó là lựa chọn tốt nhất cho Visual Basic, bạn không thể phủ nhận điều đó!
rlms

1
@sweeneyrod: Công bằng mà nói, sử dụng VB để phát triển ứng dụng cho Wine sẽ khá tốt.
Matt Joiner

Vấn đề với thứ gì đó được truy cập thông qua trường đại học là sau khi lớp học kết thúc, bạn không có cách nào để vận dụng các kỹ năng mà bạn đã làm việc chăm chỉ để có được.
richard1941

@ richard1941: Ở trường đại học không có ý định áp dụng vào ngành chính xác những công nghệ bạn đã học trên lớp.
Matt Joiner

5

Hãy cẩn thận sử dụng trình biên dịch C, không phải C ++ nếu bạn thực sự đang làm C. Mặc dù hầu hết các chương trình trong C sẽ hoạt động bằng trình biên dịch C ++ nhưng có đủ sự khác biệt mà có thể có vấn đề. Tôi sẽ đồng ý với những người đề nghị sử dụng gcc thông qua cygwin.

BIÊN TẬP:
http://en.wikipedia.org/wiki/Compatibility_of_C_and_C%2B%2B cho thấy một số khác biệt chính


Bạn có thể nói rõ hơn về chi tiết cụ thể về "đủ khác biệt"?
Đánh dấu


2
Bất kỳ trình biên dịch C ++ nào cũng sẽ biên dịch C - thường chế độ trình biên dịch sẽ được chọn tự động dựa trên phần mở rộng tên tệp, nhưng mọi trình biên dịch cũng có tùy chọn để buộc chế độ C hoặc C ++ bất kể tên tệp.
Michael Burr



3

Tôi đến muộn với bữa tiệc này, nhưng đối với bất kỳ người dùng C nào trong tương lai trên Windows, Visual Studio nhắm mục tiêu C90 thay vì C99, đó là những gì bạn nhận được trên * nix. Tôi hiện đang nhắm mục tiêu C99 trên Windows bằng cách sử dụng Sublime Text 2 song song với Cygwin.



1

Visual C ++ Express là một IDE tốt và miễn phí dành cho Windows đi kèm với trình biên dịch.

Nếu bạn cảm thấy thoải mái hơn với các giải pháp dòng lệnh nói chung và gcc nói riêng, MinGW hoặc Cygwin có thể phù hợp hơn với bạn. Cả hai đều miễn phí.


1

Đã có một vài nhận xét chỉ ra rằng C không phải là C ++. Mặc dù điều đó đúng, nhưng cũng đúng là bất kỳ trình biên dịch C ++ nào cũng sẽ biên dịch C - thường chế độ trình biên dịch sẽ được tự động chọn dựa trên phần mở rộng tên tệp, nhưng mọi trình biên dịch cũng có tùy chọn để buộc chế độ C hoặc C ++ bất kể tên tệp.

Vì vậy, hãy chọn trình biên dịch C ++ miễn phí mà bạn cảm thấy thoải mái nhất với gcc, VC ++ Express, Digital Mars, bất cứ thứ gì. Sử dụng IDE bạn thích nhất emacs, vim, VC ++ Express, Code :: Blocks, Bloodshed - một lần nữa, bất cứ điều gì.

Bất kỳ công cụ nào trong số này sẽ quá đủ cho việc học. Cá nhân, vì bạn đang hỏi về Windows, tôi sẽ chọn VC ++ Express - đó là một IDE tuyệt vời, nó miễn phí và nó sẽ biên dịch các chương trình C tốt.


1
Nói từ kinh nghiệm: VC là một trình biên dịch C khủng khiếp. Bất cứ thứ gì hiện đại tồn tại đều bị tụt hậu trong VC. Đối với C ++, điều đó thật tuyệt vời ... đối với C, nó thật kinh khủng.
zeboidlund

0

Nó phụ thuộc vào những gì bạn đang sử dụng trong lớp.

Nếu phòng thí nghiệm và bài tập nằm trong linux, thì bạn có thể muốn một giải pháp MinGW. Nếu chúng ở trong cửa sổ, hãy tải Visual Studio Express.


0

Bạn không thể tải phiên bản Visual Studio Student Addition miễn phí từ trường của mình? Hầu hết các trường Đại học đều có chương trình tặng phần mềm miễn phí cho sinh viên.


1
Không, anh ấy đúng. Có một chương trình đặc biệt tên là "Dream Spark", tôi không ủng hộ một thứ lén lút như vậy của Microsoft.
Matt Joiner

0

Ý bạn là Dev-C ++ của Bloodshed? Đó là một IDE trực quan tuyệt vời cho C ++, sử dụng gcc của MinGW dành cho Windows làm trình biên dịch hậu cảnh. Dự án đã bị bỏ dở trong một thời gian (theo ý kiến ​​của tôi, việc sử dụng Delphi để phát triển C ++ IDE là một việc làm rất ngu ngốc để thu hút sự chú ý của các nhà phát triển), tuy nhiên không có gì ngăn cản bạn sử dụng nó và cập nhật phiên bản gcc của MinGW. sử dụng phiên bản mới nhất - ngoài ra nó còn được cấp phép GPL.


0

Tôi sử dụng DEV C ++, CygWin hoặc Visual C ++ Express của BloodShed. Tất cả đều miễn phí và hoạt động tốt. Tôi nhận thấy rằng đối với tôi, DEV C ++ hoạt động tốt nhất và ít kỳ quặc nhất. Mỗi trình biên dịch đều có những điểm kỳ quặc và khác biệt riêng, bạn cần thử một vài và tìm cái mà bạn cảm thấy thoải mái nhất. Tôi cũng thích thực tế là DEV C ++ cho phép tôi thay đổi phông chữ được sử dụng trong trình chỉnh sửa. Tôi thích phông chữ Lập trình Proggy!


-1

Phải trình biên dịch Windows C ++ mới hoạt động.

Ngoài ra, hãy xem MinGW .


6
C! = C ++. Có sự khác biệt như vậy mà không phải tất cả mã C thậm chí sẽ được biên dịch trong C ++.
tloach 22/09/08
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.