Удаленное программирование и отладка - PullRequest
0 голосов
/ 23 октября 2009

Я должен запрограммировать приложение на C / C ++. У меня есть windows и linux (ubuntu 9.04) на моей машине, и я могу программировать на них обоих (через gcc / code blocks / vim и т. Д.). Проблема в том, что исполняемый файл будет запущен на машине Unix (не Linux) (будет иметь доступ к нему примерно через 20 дней).

Мой руководитель группы не хочет, чтобы весь код программировался в Linux - Unix. Поэтому, некоторые из них должны быть разработаны в окнах (и тогда последуют многие молитвы, чтобы ничего не случилось).

Лучшее, что я придумаю, - это дистанционное программирование на сервере, из windows и linux, так что каждый программист (только я в течение следующих 2 недель) отчасти счастлив. В Windows, я думаю, я застрял с замазкой, но есть ли альтернатива на Linux, а не Ssh-Vim? .

Я прочитал это Удаленная отладка с помощью Eclipse CDT , но она не пролила много света на эту тему. По крайней мере, не так много надежды.

Есть еще одна проблема. Я не считаю C / C ++ переносимым языком. По крайней мере, для реальных программ. Конечно, он компилируется, но многие проблемы будут возникать, даже с boost / stl. Я не внимательно изучил код, но все же, как неправильно я?

Любые советы будут с благодарностью. Заранее спасибо.

Ответы [ 6 ]

1 голос
/ 23 октября 2009

Не уверен, поможет ли это, но взгляните на sshfs. У меня не было необходимости использовать его самостоятельно, но я читал, что другие используют его для доступа к удаленным файлам и каталогам через ssh и работы с файлами локально. Я предполагаю, что вы можете получить доступ к своему удаленному домашнему каталогу через sshfs, а затем использовать свои локальные инструменты для работы с исходными файлами. Мне было бы очень интересно узнать, сработает ли это, поэтому, пожалуйста, напишите, если вы попробуете.

1 голос
/ 23 октября 2009

Возможно, вы захотите проверить расширение wingdb visual studio .

1 голос
/ 23 октября 2009

Если вы хотите использовать удаленный рабочий стол как средство, попробуйте VNC www.realvnc.com или, если это просто удаленный вход в систему Hummingbird, EXceed может помочь

1 голос
/ 23 октября 2009

Если вы можете убедить системного администратора установить библиотеки (X-сервер не требуется), вы можете использовать перенаправление X с SSH, что позволит вам удаленно запускать X-приложения и запускать их на локальном сервере. Если вы используете Linux локально, возможно, у вас уже запущен X, а если вы используете Windows, вы можете использовать сервер Xming (с небольшой настройкой, чтобы он мог принимать удаленные подключения). Для отладки, если вам нужна отдельная оболочка, просто установите другой экземпляр SSH и выполните отладку из другого процесса.

Что касается переносимости, это зависит от того, что вы пытаетесь сделать. Если все, что вам нужно, это простое консольное приложение, вы не должны сталкиваться с какими-либо серьезными проблемами переносимости. Если вы используете более сложный код, переносимость сильно зависит от двух вещей. Во-первых, это выбор библиотек - конечно, вы можете запускать приложения, написанные для Win32 на Linux с Wine, или даже скомпилировать их с Winelib, но это не очень приятный опыт. Если вы выберете что-то более портативное, например Qt или gtkmm, вам будет намного легче. Аналогично для кода файловой системы - использование библиотеки, такой как Boost.Filesystem, значительно упростит задачу. Второе, что имеет большое значение для мобильности, это следуйте документации . Сложно подчеркнуть это достаточно - многие вещи, которые вы делаете неправильно, будут иметь разные результаты на разных платформах, особенно если вы используете библиотеки, которые не выполняют проверки (примечание: по этой причине я настоятельно рекомендую сверять код с отладочными стандартными библиотеками). Однажды я провел почти слабое отслеживание ошибки переносимости, которая возникла из-за того, что кто-то не читал документы и передавал неверный параметр.

1 голос
/ 23 октября 2009

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

Если весь код находится на удаленной машине и скомпилирован там, вам не нужно беспокоиться о разработчиках, пытающихся работать с теми же ресурсами? Также может ли машина / сеть не поддерживать несколько соединений ssh, если вы используете xming?

0 голосов
/ 23 октября 2009

Я использую Нет компьютера NX , что дает вам весь рабочий стол удаленного компьютера. У этого также есть клиент Windows. Я работаю удаленно из дома по пятницам, поэтому я использую это прямо сейчас. Вам придется установить его на удаленном компьютере, а затем установить клиент на компьютере Windows или Linux.

...