Kompilator C dla systemu Windows? [Zamknięte]


125

Dobrze pracuję na Linuksie, używając gcc jako kompilatora C, ale chciałbym mieć rozwiązanie Windows. Jakieś pomysły? Patrzyłem na Dev-C ++ z Bloodshed, ale szukam więcej opcji.


Sprawdź podsystem Windows dla systemu Linux wprowadzony w 2017 roku. Umożliwia to uruchamianie natywnych narzędzi linuxowych, takich jak gcc, bezpośrednio w systemie Windows. Zobacz: docs.microsoft.com/en-us/windows/wsl/install-win10 i howtogeek.com/249966/…
Evan Rosica

Odpowiedzi:


79

Możesz użyć GCC w systemie Windows, pobierając MingW ( wycofany ) lub jego następcę Mingw-w64 .


1
stackoverflow.com/questions/29205033/… - Ale używanie MinGW w Windows nie rozwiązuje problemów z obsługą LibVLC i Gstreamera. Użycie MinGW powoduje awarię plików wykonywalnych. Czy jest jakieś lepsze rozwiązanie?

1
Chociaż mingw jest fantastycznym projektem, nie odpowiadał mi, gdy chciałem skompilować plik exec dla systemu Windows. w Linuksie.
Vijay Kumar Kanta

36

Możesz pobrać Visual C ++ Express Edition bezpośrednio od firmy Microsoft, jeśli chcesz coś dla Win32. W przeciwnym razie MinGW lub lcc, jak zasugerowano w innym miejscu.


3
Visual Studio jest świetne, ale jeśli używają linux / gcc w klasie, prawdopodobnie nie jest to najlepsza opcja.
Joel Coehoorn

1
Problem polega na tym, że C i C ++ to różne języki. Kod C nie zawsze działa w C ++.
tloach

9
Uważam, że Visual C ++ ma również kompilator w trybie C.
Alex M

4
Stroustrup wyjaśnia to tutaj: public.research.att.com/~bs/bs_faq.html#C-is-subset Myślę, że najgorszą częścią jest niedopasowanie sizeof () dla znaków i ints oraz dodane słowa kluczowe w C ++.
Alex M

17
Jak @Richard powiedział w komentarzach: VC ++ nie ma funkcji C99.
jfs

23

GCC jest wszechobecne. Jest zaufany i dobrze rozumiany przez tysiące ludzi w dziesiątkach społeczności.

Visual Studio to prawdopodobnie najlepsze środowisko IDE, jakie kiedykolwiek powstało. Ma pod spodem świetny kompilator. Ale dotyczy wyłącznie systemu Windows.

Jeśli tylko grasz, pobierz GCC - to nic nie kosztuje. Jeśli martwisz się wieloma platformami, to GCC. Jeśli mówisz poważnie o programowaniu w systemie Windows, pobierz program Visual Studio.


Jest teraz, Visual Studio Codektóry jest wieloplatformowy, z mniej więcej taką samą funkcjonalnością.
Dr_Zaszuś

19

Zawsze możesz po prostu użyć gcc przez cygwin.


13
To wiąże twoją aplikację z biblioteką Cygwin DLL, co moim zdaniem jest naprawdę irytujące.
Alex M

Zgadzam się, ale jeśli aplikacja ma instalator, można dołączyć plik dll.
UnkwnTech

13
Użyj opcji --mno-cygwin podczas kompilacji pod cygwin. To sprawia, że ​​kompiluje pliki binarne MinGW; nie jest wymagana biblioteka DLL Cygwin.
Colin,

5
-mno-cygwinnie jest już obsługiwany - zamiast tego zainstaluj pakiety cross-kompilatorów MinGW odpowiednie dla Twojej platformy
Christoph

18

Jest jeszcze jeden darmowy kompilator C dla systemu Windows: Pelles C.

Pelles C to kompletny zestaw deweloperski dla systemów Windows i Windows Mobile. Zawiera między innymi optymalizujący kompilator C, asembler makr, konsolidator, kompilator zasobów, kompilator komunikatów, narzędzie do tworzenia i konstruktory instalacji dla systemu Windows i Windows Mobile. Zawiera również zintegrowane środowisko programistyczne (IDE) z zarządzaniem projektami, debugerem, edytorem kodu źródłowego i edytorami zasobów dla okien dialogowych, menu, tabel ciągów, tabel akceleratorów, bitmap, ikon, kursorów, animowanych kursorów, animacji wideo (AVI bez dźwięku), wersje i manifesty XP.

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


12

Osobiście rozważałem użycie MinGW (czego używa Bloodshed) z IDE Code Blocks .

Rozważam również użycie kompilatora Digital Mars C / C ++ .

Obie wydają się być dobrze szanowane.


Digital Mars C / C ++ istnieje już od jakiegoś czasu i radzi sobie dobrze. Jednak napotkasz problemy z łączeniem bibliotek, ponieważ używa nie tak powszechnego formatu plików obiektowych. Jeśli możesz zdobyć kod źródłowy, nie stanowi to większego problemu. Poza tym nigdy ich nie używałem, ale są narzędzia do konwersji formatów plików.
BCS

8

Możesz wypróbować Code :: Blocks , które jest lepszym IDE i zawiera MinGW GCC! Użyłem go i jest to po prostu zbyt dobre darmowe IDE dla C / C ++.


@zeboidlund, a jaka jest wersja po winxp?
Pacerier

8

GCC nie jest technicznie kompilatorem specyficznym dla Linuksa. Jest to zgodny ze standardami kompilator c / c ++ i używam go na co dzień w programach Windows. Prawdopodobnie najlepiej jest używać go, dopóki nie poczujesz się bardziej komfortowo z czymś innym.

Zalecam użycie dystrybucji MinGW GCC. To skompiluje twoje programy natywnie dla systemu Windows, używając standardowej biblioteki itp.

Jeśli szukasz IDE, mam dwie rekomendacje. Visual Studio jest wersją Microsoftu i chociaż ma swoje problemy, jest doskonałym IDE do pracy z kodem. Jeśli jednak szukasz czegoś nieco lżejszego, CodeBlocks jest również całkiem niezłe i ma dodatkową zaletę w postaci możliwości korzystania z dowolnego zainstalowanego kompilatora (w tym kilku form GCC i Microsoft Compiler, który jest dostarczany z Visual Studio) i możliwość otwierania plików projektów z innych środowisk IDE. Ponadto działa również pod Linuksem, więc możesz ułatwić sobie to przejście.

Osobiście wolę GCC, ale to tylko ja. Jeśli naprawdę chcesz rozwiązania firmy Microsoft, VS jest najlepszym rozwiązaniem.


7

MinGW byłoby bezpośrednim tłumaczeniem z gcc dla Windows lub możesz chcieć wypróbować LCC , vanilla c (mniej więcej) za pomocą IDE. Wydaje się, że Pelles C jest oparty na lcc i ma nieco ładniejsze IDE, chociaż osobiście go nie używałem. Oczywiście zawsze dostępna jest wersja Express Edition MSVC, która jest bezpłatna, ale to Twoja decyzja.


6

Większość uniwersytetów zapewnia dostęp do Microsoft Dreamspark .

Jeśli używasz GCC / Linux na zajęciach, po prostu zainstaluj Ubuntu . Windows to straszna platforma do programowania w C.


16
Windows to straszna platforma dla całego rozwoju. Naprawiłem to dla ciebie.
notbad.jpeg

4
To najlepsza opcja dla Visual Basic, nie możesz temu zaprzeczyć!
rlms

1
@sweeneyrod: Aby być uczciwym, używanie VB do tworzenia aplikacji dla Wine byłoby całkiem dobre.
Matt Joiner

Problem z czymś, do czego można uzyskać dostęp za pośrednictwem uniwersytetu, polega na tym, że po zakończeniu zajęć nie masz możliwości wykorzystania umiejętności, nad którymi tak ciężko pracowałeś.
richard1941

@ richard1941: Intencją uniwersytetu nie jest stosowanie w przemyśle dokładnie tych technologii, których nauczyłeś się na zajęciach.
Matt Joiner

5

Uważaj, aby używać kompilatora C, a nie C ++, jeśli faktycznie robisz C. Chociaż większość programów w C będzie działać przy użyciu kompilatora C ++, jest wystarczająco dużo różnic, że mogą wystąpić problemy. Zgodziłbym się z ludźmi, którzy sugerują używanie gcc przez cygwin.

EDYTOWAĆ:
http://en.wikipedia.org/wiki/Compatibility_of_C_and_C%2B%2B pokazuje niektóre z głównych różnic


Czy możesz rozwinąć szczegóły dotyczące „wystarczających różnic”?
Mark


2
Każdy kompilator C ++ również skompiluje C - zwykle tryb kompilatora zostanie automatycznie wybrany na podstawie rozszerzenia nazwy pliku, ale każdy kompilator ma również opcję wymuszenia trybu C lub C ++ niezależnie od nazwy pliku.
Michael Burr,



3

Spóźniłem się na tę imprezę, ale dla wszystkich przyszłych ludzi C w systemie Windows Visual Studio jest ukierunkowany na C90 zamiast C99, co można uzyskać na * nix. Obecnie celuję w C99 w systemie Windows, używając Sublime Text 2 w połączeniu z Cygwin.



1

Visual C ++ Express to dobre i darmowe IDE dla systemu Windows, które jest dostarczane z kompilatorem.

Jeśli ogólnie czujesz się bardziej komfortowo z rozwiązaniami wiersza poleceń, aw szczególności z gcc, MinGW lub Cygwin mogą być bardziej na twojej drodze. Oba są również bezpłatne.


1

Pojawiło się kilka komentarzy wskazujących, że C to nie C ++. Chociaż to prawda, prawdą jest również, że każdy kompilator C ++ będzie również kompilował C - zwykle tryb kompilatora zostanie automatycznie wybrany na podstawie rozszerzenia nazwy pliku, ale każdy kompilator ma również opcję wymuszenia trybu C lub C ++ niezależnie od nazwy pliku.

Wybierz więc darmowy kompilator C ++, który najbardziej Ci odpowiada gcc, VC ++ Express, Digital Mars, cokolwiek. Użyj IDE, które lubisz najbardziej emacs, vim, VC ++ Express, Code :: Blocks, Bloodshed - znowu cokolwiek.

Każde z tych narzędzi będzie więcej niż odpowiednie do nauki. Osobiście, skoro pytasz o Windows, wybrałbym VC ++ Express - to świetne IDE, jest darmowe i dobrze skompiluje programy w C.


1
Mówiąc z doświadczenia: VC to okropny kompilator C. Cokolwiek nowoczesnego, co istnieje, pozostało w tyle w VC. Dla C ++ jest świetne ... dla C jest okropne.
zeboidlund

0

Wszystko sprowadza się do tego, czego używasz na zajęciach.

Jeśli laboratoria i zadania są w systemie Linux, prawdopodobnie potrzebujesz rozwiązania MinGW. Jeśli są w systemie Windows, pobierz Visual Studio Express.


0

Czy nie możesz uzyskać bezpłatnej wersji dodatku Visual Studio dla uczniów ze swojej szkoły? Większość uniwersytetów ma programy do udostępniania studentom bezpłatnego oprogramowania.


1
Nie, on ma rację. Jest specjalny program o nazwie „Dream Spark”, nie żebym wspierał taką podstępną rzecz Microsoftu.
Matt Joiner

0

Masz na myśli Dev-C ++ Bloodsheda? To przyjemne wizualne IDE dla C ++, które używa gcc MinGW dla Windows jako kompilatora back-the-scene. Projekt został na jakiś czas porzucony (moim zdaniem używanie Delphi do tworzenia C ++ IDE jest bardzo głupią rzeczą, aby zwrócić uwagę programistów), jednak nic nie stoi na przeszkodzie, aby go używać i aktualizować wersję gcc it MinGW używa do najnowszego - poza tym jest na licencji GPL.


0

Używam albo DEV C ++ BloodShed, CygWin, albo Visual C ++ Express. Z których wszystkie są bezpłatne i działają dobrze. Odkryłem, że dla mnie DEV C ++ działa najlepiej i jest najmniej dziwaczny. Każdy kompilator ma swoje dziwactwa i różnice, musisz wypróbować kilka i znaleźć ten, który najbardziej Ci odpowiada. Podobał mi się również fakt, że DEV C ++ pozwoliło mi zmienić czcionki używane w edytorze. Lubię czcionki Proggy Programming!


-1

Czy kompilatory Windows C ++ będą działać.

Sprawdź także MinGW .


6
C! = C ++. Istnieją różnice takie, że nie cały kod w C da się nawet skompilować w C ++.
tloach
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.