Cygwin в Visual Studio

Я пытаюсь перенести старую программу, которую я написал для класса из KDev в Ubuntu, в Windows Visual Studio 2008, используя Cygwin как личное упражнение. У меня есть путь включения, который включает C:\cygwin\usr\include, но он не читает файлы .h.

А именно, мне любопытно, как можно использовать функциональность unix sockets.h в среде Visual Studio с помощью Cygwin. Кто-нибудь когда-либо получал эту работу или имел более простой способ сделать это?

Ответ 1

Существует несколько способов сделать это, что может быть сделано для работы, в зависимости от ваших точных целей. Самый простой способ - это просто создать проект "Makefile" Visual Studio, который запускает команду пользовательской сборки для запуска созданного вами файла makefile. Но это отвлекает вас от множества приятных преимуществ Visual Studio в качестве среды IDE, поэтому я предполагаю, что на самом деле вы этого не сделали.

Если вы хотите получить более полное интегрированное решение, вам нужно будет сделать две вещи. Прежде всего, вам нужно будет изменить все пути include/library, чтобы избежать использования Microsoft и пойти вместо Cygwin. Вы можете сделать это, выбрав в меню "Инструменты- > Параметры", затем выбрав "Проекты и решения- > VС++-каталоги" из дерева в левой части появившегося окна. У вас будут опции для изменения каталогов поиска для исполняемых файлов, заголовков, библиотек и т.д. Для чего вы пытаетесь сделать это, я бы предложил удалить все и добавить только каталоги cygwin.

Во-вторых, вам нужно будет сказать Visual Studio, чтобы использовать компилятор gcc/g++. Это немного сложнее. VS поддерживает пользовательские правила сборки для пользовательских типов файлов... но, похоже, С++ работает в компиляторе Microsoft. Я не очень хорошо разбираюсь в этом, кроме как использовать собственное собственное расширение файла. Вы можете попробовать стандартные расширения UNIX файлов .c(C) и .cc(файлы С++), но я подозреваю, что Visual Studio автоматически подберет их. Возможно, вам придется пойти с чем-то совершенно чужим.

Если вы щелкните правой кнопкой мыши на своем проекте в обозревателе решений и выберите "Пользовательские правила сборки", вам будет предоставлен интерфейс, который позволит вам создавать свои пользовательские правила сборки для выбранного вами расширения. Интерфейс относительно прост.

Это может не дать вам именно то, что вы хотели, но это, вероятно, примерно так же близко, как вы собираетесь с Visual Studio.

Ответ 2

Проще говоря, не делает этого. Это было бы пустой тратой времени. Я пробовал это несколько раз, но всегда терпел неудачу. В основном, я был разочарован многими ошибками связывания, а также не смог использовать VS в качестве отладчика.

Вы можете использовать Visual Studio для редактирования и просмотра исходного кода. Это хорошо, потому что VS предоставляет лучшие функции intellisense C/С++ (например, автоматическое завершение, быстрый переход к определению/декларации). Но очень сложно использовать цепочки инструментов cygwin с Visual Studio 2008. Visual Studio 2008 не предназначен для работы с другими цепочками инструментов. В частности, вам нужно изменить (1) заголовки, (2) библиотеки, (3) компилятор и (4) компоновщик. Однако, как правило, это очень сложно, или вам нужно торговаться с хорошими функциями Visual Studio.

Самой сильной особенностью Visual Studio является ее способность отлаживать, такую ​​как полностью интегрированная среда отладки и очень удобные окна просмотра (например, вы можете видеть векторный элемент STL непосредственно в окнах просмотра). Однако вы не можете сделать этого, если бы изменили основную цепочку инструментов (хотя я очень подозрительно, что можно даже безопасно строить с помощью цепей инструментов Visual Studio и Cygwin).

К сожалению, текущий Visual Studio 2008 не для cygwin/MinGW.