Разработка для Visual C ++ Linux - PullRequest
3 голосов
/ 24 апреля 2009

Я уже довольно давно пользуюсь Visual C ++, и в следующие недели я присоединюсь к проекту (C ++) только для Linux. Следует отметить, что у меня абсолютно нулевой опыт разработки под Linux.

В настоящее время Visual C ++ 9 вместе с надстройкой Visual Assist X делают разработку на базе Windows довольно приятной. Однако просмотр различных IDE C ++ в Linux заставил меня немного разочароваться опытом написания кода.

Я бы хотел использовать свой текущий набор инструментов (см. Выше) для разработки под Linux, поэтому у меня есть пара вопросов:

  1. Может ли редактор VS конвертировать между CR + LF <-> LF надежным способом?
  2. Можно ли настроить систему, в которой, если я нажму "Build" в IDE, вся моя работа будет перенесена в другую коробку (например, виртуальную машину) под управлением Linux, которая компилирует мой проект?
  3. Как будет работать отладка? Возможно ли выполнить удаленную отладку приложения, работающего в Linux, через что-то вроде gdb? Если да, будут ли потеряны «расширенные» функции отладчика MS (например, точки трассировки, break-if-cond и т. Д.)?

Это даже нормальная вещь, чтобы думать? Кто-нибудь использует среду Windows для разработки Linux? Если нет, то, наверное, мне стоит просто смириться с этим и перейти в среду Linux вместе ...?

Любой вклад приветствуется, так как сейчас я чувствую себя немного растерянным.

Ответы [ 9 ]

3 голосов
/ 24 апреля 2009

Вполне вероятно, что вы в конечном итоге захотите смириться с этим и работать на Linux. Microsoft по понятным причинам строит свои инструменты так, чтобы они были ориентированы на Windows и были ориентированы на Windows; Есть даже несколько способов, которыми Visual C ++ не совсем стандартный C ++.

Тем не менее, вы можете работать в некоторой степени с VC ++.

В Linux есть простые инструменты, которые переводят в конец строки UNIX из Windows. (называется что-то креативное, как 'dos2unix')

Вы можете настроить удаленную файловую систему, как в ExpanDrive для Windows, чтобы вы могли хранить там свои файлы.

Вы можете запустить ssh или rsh из Windows, чтобы запустить make на удаленном компьютере с Linux.

2 голосов
/ 01 июля 2010

В настоящее время я работаю в команде Linux, но в качестве IDE использую Visual Studio + Visual AssistX. На мой взгляд, VS + VAX - лучшая среда для разработки кода. Ничего подобного не существует нигде, что я нашел.

То, что вы хотите сделать, это:

  1. Установите Cygwin openssh и настройте его для обстрела на вашем компьютере с Linux без пароля.
  2. Предоставьте дерево разработки на своем компьютере с Linux как общий ресурс samba и смонтируйте его на своем компьютере с Windows.
  3. Создайте проект "makefile" для Visual Studio со ссылкой на файлы на вашем компьютере с Linux.
  4. Переопределите команду make для ssh на вашем Linux-компьютере и выполните сборку.
  5. Напишите на вашем компьютере linux скрипт, который преобразует ошибки вывода gcc / g ++ в формат visual studio. Я использую что-то похожее на это: sed -e 's /(.): ([0-9] ): (. *) / Z: \ path \ to \ code \\ 1 (\ 2 ): \ 3 / '\
2 голосов
/ 24 апреля 2009

Я сделал кроссплатформенную разработку для windows / linux / freebsd с Windows в качестве основной ОС ... так что это возможно.

  • Использовать VS в качестве редактора.

  • Доступ к узлу Linux Dev через SSH с шпатлевка .

  • Использовать систему контроля версий (Подрывной / мерзавец / базар / ртутный / резюме) проверить изменения в репо и проверить меняется на Linux.

  • Использовать многоплатформенный процесс сборки. я используйте SCons . Это на основе Python и работает красиво - хотя это немного медленно с настройкой по умолчанию Настройки.

  • Запуск процесса сборки из оболочки с использованием шпатлевка.

  • Используйте дополнительные оболочки по мере необходимости присоединить GDB и отладки.

Теперь, чтобы ответить на ваши вопросы:

  1. Да. Есть настройка VS, чтобы сказать использовать окончания строки Unix. Многие системы контроля версий также могут быть настроены для вас.

  2. Может быть, но я не так сделал.

  3. Да, вы можете удаленно отлаживать с помощью GDB. GDB имеет много (все?) Функций, доступных в отладчике VS, но вы должны изучить команды GDB. Я не знаю, как использовать отладчик VS для отладки процессов, скомпилированных с GCC - хотя это частый запрос.

2 голосов
/ 24 апреля 2009

Я бы порекомендовал вам погрузиться и попытаться изучить способ ведения дел в Linux. Что используют другие люди в вашей команде? Если вы используете тот же набор инструментов, что и другие люди, вам будет гораздо лучше обращаться за помощью. Если вы сидите на кросс-компиляции Windows, используя Cygwin, вы более или менее сами по себе.

1 голос
/ 24 апреля 2009

Я бы порекомендовал вам попробовать Linux изначально, а не через виртуальную машину. Если вы запустите его на виртуальной машине, вы, вероятно, в конечном итоге будете выполнять 85% своих действий под Windows, и это не позволит вам на самом деле чему-то научиться под Linux.

Установите linux в отдельный раздел и работайте на нем полный рабочий день. Сделайте это КАК МОЖНО СКОРЕЕ до начала проекта и ознакомьтесь с основами его использования.

Что касается использования IDE, выясните, какую систему сборки будет использовать проект и какие библиотеки вы будете использовать. KDevelop - отличная среда разработки, хотя она может быть немного перегружена. Мне очень нравится Qt-Creator . Возможно, вы тоже захотите выстрелить в «Затмение».

В отношении того, какой дистрибутив использовать, я бы порекомендовал вам Archlinux , если вы хотите по-настоящему изучить что-то из этого и узнать о linux вместе с обучением разработке под linux. Если вы действительно не хотите слишком много узнавать о Linux и сразу же приступить к разработке, тогда используйте Kubuntu . Что касается использования Desktop Manager, я бы пошел с KDE.

0 голосов
/ 01 июля 2010

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

Вероятно, вам лучше воспользоваться цепочкой инструментов на основе gcc, такой как MinGW, если вы не хотите сразу переключать свою среду на Windows. MinGW использует собственные порты Win32 стандартных библиотек с открытым исходным кодом, таких как getopt, и довольно просто портировать программное обеспечение между Linux и MinGW32 (если вы не используете специфичные для Linux или Windows API).

Однако портировать программное обеспечение с MinGW на Visual C ++ немного сложнее. В нескольких случаях, когда я делал подобные вещи, я обнаружил, что перенос между Linux и MinGW намного проще, чем перенос между MinGW и Visual C ++.

Насколько мне известно, я никогда не видел плагин MinGW для Visual Studio, хотя теоретически можно написать такую ​​вещь, как Visual Studio, которая позволит вам использовать сторонние компиляторы. Кроме того, вам придется работать с любой системой сборки, которую использует остальная часть команды, которая, скорее всего, не будет MSBuild.

Итак, я предполагаю, что это вряд ли будет хорошо работать. Тем не менее, как сказал бы Хант и Томас, привыкание к другому образу жизни сделает вас лучшим программистом. Хотя vi (или emacs, если вы так склонны), ctags и gdb работают совсем не так, как Visual Studio, они все еще довольно мощная среда разработки. С MinGW32 и Cygwin или MSYS вы можете использовать их без необходимости массового перехода на Linux.

0 голосов
/ 24 апреля 2009

Я написал ftp-скрипт для перемещения файлов с моего компьютера на Linux-коробку, затем установите его как инструмент, чтобы я мог, по крайней мере, написать код на ПК, и иметь легкий доступ к источнику безопасно. Я нажимаю кнопку инструмента, и файлы переносятся в окно linux, где я использую утилиты для выполнения работы

0 голосов
/ 24 апреля 2009
  1. & 3 .: Я использую Cygwin + Eclipse на Windows для разработки и компиляции. С помощью этой комбинации я также могу отлаживать с помощью gdbserver на целевой машине (виртуальная машина с x86 Linux или ARM "настоящая" цель).

К сожалению, вам нужно сделать несколько крошечных, но важных настроек (пути к библиотекам в gdb и т. Д.), Но как только это сработает ......

Извините, нет решения для отладки изнутри VS на коробке с Linux ... и я думаю, что в ближайшем будущем их не будет ...

0 голосов
/ 24 апреля 2009

В Linux нет Visual Studio. Период. Попробуйте KDevelop или Code :: Blocks. Они должны развлекать разработку под Linux.

Что касается компиляторов / исполняемых файлов, вам придется использовать набор инструментов GNU GCC. В Linux нет компилятора MS cl.

Используемый отладчик - gdb, снова часть цепочки инструментов GCC.

Еще одна вещь, попробуйте выбрать оболочку (например, bash) и прочитать ее. Это сэкономит довольно много времени в будущем.

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