Используя Visual Studio для разработки для C++ для Unix

Как насчет использования выражения, которое оценивается как TRUE (или FALSE)?

select get_something('NAME', 1 = 1) from dual
17
задан 2 revs, 2 users 100% 25 August 2008 в 05:12
поделиться

12 ответов

VS двигается с пыхтением для достижения уровня меня.
Хм... Вы машине нужно больше памяти & пехотинец. Никогда не имел проблемы производительности с моим.

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

Прежде, чем продолжить, я должен признаться, что все это было сделано в VS6 + CVS, и в последнее время, SVN.

Управление версиями Исходного кода

у Разработчиков есть отдельные sourcesafe репозитории так, чтобы они могли сохранить свою работу и проверить его пакеты работы в логические этапы. Когда они чувствуют, что хотят сделать интеграционный тест, мы выполняем сценарий, который проверяет его в SVN.

Когда-то зарегистрировался в SVN, у нас есть процесс, который начинается, который автоматически генерирует соответствующие make-файлы для компиляции их на целевых машинах для непрерывной интеграции.

у Нас есть другой набор сценариев, что синхронизации новый материал от SVN до папок, о которых заботится VS. Существует немного разрыва, потому что VS не может автоматически взять новые файлы; мы обычно обрабатываем это вручную. Это только регулярно происходит первые несколько дней проекта.

Это - обзор того, как мы поддерживаем коды. Я должен сказать, я, вероятно, замял некоторые детали (сообщите мне, ли Вам интересно).

Кодирование

От аспекта кодирования, мы полагаемся в большой степени на препроцессоры (т.е. #define, и т.д.) и флаги в make-файле для формирования процесса компиляции. Для кросс-платформенной мобильности мы используем GCC. Несколько раз мы были силой для использования aCC на HP-UX и некоторых других компиляторах, но у нас не было большого количества горя. Единственная вещь, которая является постоянной болью, состоит в том, что мы должны были не упустить пространства "кучи" потока через платформы. Компилятор не спасает нас от этого.

, Почему?

вопрос обычно, "Почему h*ll был бы Вы даже, что иметь такой сложный способ разработки?". Наш ответ обычно является другим вопросом, который идет, "Имейте Вас какая-либо подсказка, как безумный это должно отладить многопоточное приложение путем исследования дампа ядра или использования gdb?". В основном то, что мы можем проследить/ступить через каждую строку кода при отладке неясной ошибки делает все это стоящим усилия!

Плюс!... intellisense функция VS делает настолько легким найти метод/атрибут, принадлежащий классам. Я также слышал, что VS2008 имеет возможности рефакторинга. Я сместил свой фокус к Java на Eclipse, который имеет обе функции. Вы были бы более продуктивной бизнес-логикой кодирования фокусировки, а не посвятили бы энергию, делающую Ваш ум, действительно наполняют как , помнят !

Также!... Мы закончили бы с продуктом, который может работать и на Windows и $ % & ' () * +,-. Linux!

Удачи!

7
ответ дан 30 November 2019 в 13:46
поделиться

Ознакомьтесь с «Final Builder» ( http://www.finalbuilder.com/ ). Выберите систему управления версиями (например, cvs или svn, если честно, cvs лучше подойдет для этого конкретного случая использования по звукам), а затем настройте триггеры сборки на FinalBuilder, чтобы при проверках происходила компиляция и отправлялись результаты вам. .

Вы можете установить наборы правил в FinalBuilder, которые не позволяют регистрировать / объединять неработающий код в базовую линию или определенные папки веток, но разрешают это другим (мы не разрешаем нарушать фиксацию в / baseline или / branch / *, но мы есть папка / wip / branching для разработчиков, которым необходимо поделиться потенциально испорченным кодом или просто захотеть сделать коммит в конце дня).

Вы можете распределить FB по нескольким «серверам сборки», чтобы у вас не было 20 человек, пытающихся собрать на одном блоке или ожидающих, пока один блок не обработает все маленькие битовые коммиты.

В нашем проекте есть сервер на базе Linux с клиентами Mac и Win, которые имеют общую кодовую базу. Эта установка работает смехотворно хорошо для нас.

0
ответ дан 30 November 2019 в 13:46
поделиться

Мы используем аналогичное решение того, что Вы описали.

Нам сохранили наш код на стороне Windows мира, и UNIX (QNX 4.25, чтобы быть точным) имеет доступ, хотя NFS монтируется (благодаря сервисам UNIX для Windows). У нас есть ssh в UNIX для выполнения, делают и канал для вывода в VS. Доступ к коду быстр, сборки немного медленнее, чем прежде, но наша самая длинная компиляция в настоящее время является меньше чем двумя минутами, не грандиозным предприятием.

Используя VS для разработки UNIX стоило усилия настроить его, потому что у нас теперь есть IntelliSense. Меньше ввода = счастливый разработчик.

0
ответ дан 30 November 2019 в 13:46
поделиться

У меня был хороший опыт при разработке кода Playstation2 в Visual Studio с помощью gcc в cygwin. Если у Вас есть cygwin с gcc и glibc, это должно быть почти идентично Вашим целевым средам. То, что необходимо быть портативными через Солярис и Linux, подсказывает, что cygwin должен работать просто великолепно.

1
ответ дан 30 November 2019 в 13:46
поделиться

Большая часть моего опыта программирования связана с Windows, и я большой поклонник визуальной студии (особенно с Resharper, если вам случается заниматься кодированием на C #). В эти дни я писал приложение для Linux на C ++. Попробовав все IDE (Netbeans, KDevelop, Eclipse CDT и т. Д.), Я обнаружил, что Netbeans наименее дрянной. Для меня абсолютные минимальные требования состоят в том, чтобы я был в состоянии пошагово проходить код, и у меня есть intellisense, в идеале также с некоторыми функциями рефакторинга. Мне удивительно, что сегодняшние Linux IDE даже не похожи на Visual Studio 6 более десяти лет назад. Самая большая болевая точка сейчас заключается в том, насколько медленно и плохо реализовано интеллектуальное восприятие в Netbeans. Требуется 2-3 секунды, чтобы заполнить на быстрой машине с 8 ГБ оперативной памяти. Интеллектуальность Eclipse CDT была еще более медленной. Извините, но 2-секундное ожидание intellisense не сокращает его.

Так что теперь я изучаю использование VS из Windows, хотя моя единственная цель - linux ...

Крис, вы можете взглянуть на бесплатный сервер сборки автоматизации CruiseControl, который интегрируется со всеми основными системами контроля версий (svn, tfs, sourcesafe и т. Д.). Вся его цель - реагировать на регистрацию в системе контроля версий. В общем, вы настраиваете его так, чтобы каждый раз, когда кто-нибудь проверял код, запускалась сборка и (в идеале) выполнялись модульные тесты. Для некоторых языков есть несколько отличных плагинов, которые выполняют анализ кода, покрытие кода тестового модуля и т. Д. Уведомления отправляются команде об успешных / поврежденных сборках. Вот пост, описывающий, как это может быть настроено для C ++: ссылка (мысли). .

Я только начинаю с преобразования простой конфигурации Linux (Netbeans + SVN, без автоматизации сборки) на использование Windows VS 2008 с серверной частью автоматизации сборки, которая выполняет модульные тесты в дополнение к сборкам в Linux. , Я вздрагиваю от того, сколько времени у меня уйдет на то, чтобы все это настроить, но я думаю, что чем раньше, тем лучше.

В моем идеальном конечном состоянии я смогу автоматически сгенерировать файл проекта Netbeans из проекта VS, так что, когда мне понадобится что-то отладить в Linux, я смогу сделать это из этой IDE. Файлы проекта VS основаны на XML, так что это не должно быть слишком сложно.

Если у кого-то есть какие-либо указатели на что-либо из этого, я был бы очень признателен.

Спасибо,

Кристоф

1
ответ дан 30 November 2019 в 13:46
поделиться

Сетевые ресурсы.

, Конечно, тогда у Вас есть уничтожающая задержка в сети, но по крайней мере существует только одна копия Ваших файлов.

Вы не хотите слышать то, что я сделал, когда я разрабатывал на обеих платформах. Но Вы идете в: drag-n-drop копируют несколько раз день. Локальная сборка и выполненный, и периодически проверка его на Unix для проверки gcc был счастлив и что модульные тесты были счастливы на той платформе также. Едва ли быстрый оборотный цикл там.

1
ответ дан 30 November 2019 в 13:46
поделиться

Ничего себе, это походит на действительно странное использование для Visual Studio. Я - очень счастливое пыхтение далеко в энергии. Однако одной вещью, которую я люблю в Visual Studio, является отладчик. Это кажется, что Вы даже не используете его.

, Когда я открыл вопрос, я думал, что необходимо обращаться к разработке портативных приложений в Visual Studio и затем миграции их к Солярису. Я сделал это и имел приятные впечатления с ним.

1
ответ дан 30 November 2019 в 13:46
поделиться

Я знаю, что это действительно не отвечает на Ваш вопрос, но Вы могли бы хотеть рассмотреть установку удаленного X сессий, и просто выполнить что-то как KDevelop, который, между прочим, является очень хорошим IDE - или даже Eclipse, который является более основным, и сделал, чтобы более широкий разработчик базировался. Вы могли, вероятно, просто использовать что-то как Xming как X-сервер на Ваших машинах Windows.

2
ответ дан 30 November 2019 в 13:46
поделиться

Мы разрабатываем для Mac и ПК. Мы просто работаем локально в любом идеале, который мы предпочитаем, в основном VS, но также и xcode. Когда мы чувствуем, что наши изменения достаточно стабильны для серверов сборки, мы регистрируем их. Два сервера сборки (Mac и ПК) ищут проверки исходного кода, и каждый выполняет сборку. Ошибки сборки отправляются обратно в команду.

Редактирование файлов в реальном времени на сервере сборки звучит для меня ненадежно. Что произойдет, если вы запросите сборку, когда другой разработчик внес изменения, которые не будут собраны?

2
ответ дан 30 November 2019 в 13:46
поделиться

Я чувствую Вашу боль. У нас есть приложение, которое является 'межплатформенным'. Типичное клиент-серверное приложение, где клиент должен быть в состоянии работать на окнах и Linux. Так как наша клиентура главным образом использует окна, мы работаем с помощью VS2008 (отладчик делает жизнь намного легче) - однако мы все еще должны выполнить сборки Linux.

основная проблема с этим была, мы регистрировались в коде, который мы не знали, создаст под gcc, который больше, чем, вероятно, повредил бы материал CI, у нас была установка. Таким образом, мы установили MingGW на машинах всего нашего разработчика, который позволяет нам тестировать ту рабочую копию, создаст под gcc, прежде чем мы будем фиксировать его назад репозиторию.

3
ответ дан 30 November 2019 в 13:46
поделиться

@monjardin

, который главная причина, мы используем его, из-за re-factoring/search инструментов, обеспеченных через Визуальный, Помогает X (Целым Помидором). Хотя существуют много другое хорошее имущим как Intelli-смысл. Мы также исследуем интеграцию с нашими другими инструментами AccuRev, Bugzilla и Totalview для завершения среды.

@roo

Используя несколько компиляторов походит на боль. У нас есть роскошь того, чтобы просто придерживаться gcc для всех наших платформ.

@josh

Yikes! Это походит на отличный способ представить ошибки!:-)

1
ответ дан 30 November 2019 в 13:46
поделиться

You could have developers work in private branches (easier if you're using a DVCS). Then, when you want to checkin some code, you check it into your private branch on [windows|unix], update your sandbox on [unix|windows] and build/test before committing back to the main branch.

1
ответ дан 30 November 2019 в 13:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: