Оптимальный набор инструментов для Windows C - PullRequest
0 голосов
/ 12 июля 2011

Я планирую больший проект C-only.Он должен работать как на Linux, так и на Windows.Мой вопрос: каков оптимальный стек разработки (компилятор, IDE) в Windows?Проблема в том, что мы хотели бы использовать C99 (если это возможно).В Linux это довольно просто, потому что обычно комбинация GCC + VIM + GIT является оптимальной.Но на Windows?

Я имею в виду: Visual Studio 2010 (без поддержки C99), MinGW и Intel C++ Compiler.

Как они соотносятся друг с другом с точки зрения производительности?

Ответы [ 2 ]

3 голосов
/ 12 июля 2011

Для IDE я с удовольствием использовал VC ++, MonoDevelop и Code :: Blocks (последние два кроссплатформенные, как плюс). C не является очень сложным языком для создания IDE, поэтому почти все будет работать, и все сводится к личным предпочтениям.

Для компилятора ... C очень быстро компилируется на всех из них, так что я думаю, по производительности вы имеете в виду сгенерированный код?

По моему опыту, Intel C ++ лучше всего оптимизируется, если вы ориентируетесь на процессоры Intel. MinGW GCC лучше всего оптимизирует для всего остального. VC ++ оптимизирует очень хорошо, но не так сильно, как GCC или ICC. Это, конечно, только в общем смысле - у меня было много опыта, когда VC ++ превосходит их обоих.

Компилятор VC ++ может интегрироваться с некоторыми не-VC ++ IDE, такими как Code :: Blocks. Как вы сказали, отсутствует поддержка C99 (хотя он имеет stdint.h).

MinGW интегрируется с большинством IDE, кроме VC ++. Когда-то в ее порту libstdc ++ отсутствовала поддержка wchar_t, что делало приложения Unicode очень трудными для написания. Я не уверен, изменилось ли это.

ICC интегрируется с IDE VC ++, некоторыми IDE не VC ++, а также поддерживает C99 и Linux, однако в прошлом было показано, что сознательно используется неоптимальный код при использовании с процессорами не-Intel - I ' Я не уверен, что это все еще так.

Agner Fog Оптимизация программного обеспечения на C ++ обеспечивает достойное сравнение компиляторов, включая возможности оптимизации.

1 голос
/ 12 июля 2011

Ну, GCC - это GCC. Производительность одинакова для разных ОС, за исключением различий ABI и C stdlib, которые могут повлиять на производительность.

Эту проблему легко решить, везде использовать GCC, то есть MinGW, или более новую версию mingw-w64 (включает 32- и 64-битные возможности компиляции). Он предоставляет все (большинство, то есть 99,9%) Win32 API, когда вам это нужно.

Обратите внимание, что, хотя это один и тот же компилятор, ABI отличается, скажем, Windows x64 от Linux x64 (в данном случае: размер long), и вы должны убедиться, что код компилируется и работает на всех платформах, которые вы намереваетесь цель, регулярно.

Использование GCC с -pedantic-errors -Wall -Wextra - хорошая помощь для этого (если вы отключите все предупреждения!), Но не идеально.

Компилятор Intel принесет лучшую производительность, но он бесплатен только для личного использования в Linux (вы не можете распространять двоичные файлы, созданные бесплатной версией, если я правильно помню), так что если вам нужны бесплатные инструменты, то этого нет. Visual C отстой в C99. Это компилятор C89, и он скоро не изменится.

Большинство инструментов разработки также доступны в Windows, см., Например, msysgit и vim .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...