Программирование на C с использованием Cygwin - PullRequest
1 голос
/ 27 июня 2011

Я планировал программировать на C, используя Cygwin на Windows. Имеет ли это какие-либо недостатки в производительности по сравнению с использованием gcc в Ubuntu?

Ответы [ 3 ]

4 голосов
/ 27 июня 2011

Я использовал Cygwin в Windows 7 и Windows 2008 R2 для разработки на Си. Опыт был болезненным: не только медленно, но я так и не смог добиться того, чтобы мой предпочитаемый редактор (Emacs) работал должным образом в Cygwin.

Вы можете попробовать живой дистрибутив Linux, который можно загрузить с карты памяти USB. Таким образом, вы можете программировать на C до вашего сердца без необходимости устанавливать какое-либо программное обеспечение на вашем компьютере. Я бы порекомендовал Puppy Linux , если бы вы выбрали такой подход.

Кроме того, вы можете установить продукт для виртуализации (например, VirtualBox ) и создать виртуальную машину Linux. В этом случае я бы предложил использовать Ubuntu.

Мой опыт показывает, что подход с живым дистрибутивом или виртуальной машиной будет лучше, чем использование Cygwin в качестве среды разработки.

0 голосов
/ 27 июня 2011

Еще несколько вещей, чтобы понять:

GCC-Cygwin:

Плюсы -

  1. Компиляция кода C с использованием gcc под cygwin создаст исполняемый файл windows, который использует cygwin.dll (слой эмуляции Posix), динамически связанный с вашим приложением / кодом. Так что, если вам нужно запустить это приложение с какого-либо другого пути или другого компьютера с Windows, на нем должен быть установлен Cygwin, а на его пути вы получите ошибку.

  2. Преимущество Cygwin в том, что если у вас есть POSIX-совместимый код, разработанный для Linux-gcc, вы можете скомпилировать его без каких-либо изменений (в некоторых случаях очень мало) в Windows. Это обеспечивает совместимость с Posix для Windows.

Минусы -

  1. Если вы собираетесь запускать некоторые из них, которые будут потреблять большие системные ресурсы (память, процессор), то не уверены, как cygwin будет масштабироваться по сравнению с собственным исполняемым файлом в Linux.

  2. Иногда при отладке с использованием DDD на Cygwin я обнаруживал некоторые странные сбои / зависания DDD.

GCC-Linux:

  1. Если ваше окончательное приложение будет работать в Linux, имеет смысл скомпилировать и отладить его в той же среде. Linux-GCC.

  2. Для отладки linux предоставит вам множество инструментов (gdb / ddd, valgrind) и т. Д.

  3. Если вы хотите ускорить выполнение некоторых критических задач кода, использование встроенной сборки с gcc под linux хорошо определено и не имеет проблем с работой. (Уднер Сайгвин, я иногда сталкивался с тем, что сборка встроенной сборки была проблемой )

  4. Если вы хотите добавить несколько потоков для выполнения на нескольких процессорах / ядрах, тогда вам поможет pthreads (не уверен насчет того же udner cygwin)

0 голосов
/ 27 июня 2011

Вы не получите точно такую ​​же производительность. Но является ли это недостатком или нет, зависит от того, что вы делаете.

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