Здравствуйте, enji, Вы писали: E>В файле с такой программой у меня написаны инструкции по сборке под разные платформы, инструкции по развертке на внутрифирменный сервер. А так как сконс-файлы — это программы на питоне, то можно сделать свои собственные "библиотечки" для сборки, которые затем использовать в разных проектах. Сделать что-либо подобное в ИДЕ проблематично. Хотя бы потому, что прога собирается разными компиляторами...
Хз как в линуксе, а в студии это очень даже легко и удобно делается. И платформу выбираешь из комбобокса( как и вариант сборки).
Здравствуйте, Nik_1, Вы писали:
N_>Хз как в линуксе, а в студии это очень даже легко и удобно делается. И платформу выбираешь из комбобокса( как и вариант сборки).
А какие из проектных файлов создаваемых студией ты хранишь в репозитории, как организована совместная работа? Ты же ведь не студент одиночка?
Здравствуйте, Aleх, Вы писали:
A>Такое впечатление, что проекты разрабатываются в блокноте с подсветкой ключевых слов кода. И каждый раз при компиляции запускается командная строка. Скажите, это действительно так? Зачем же быть такими мазахистами?
Я не знаю что там с java, но в C/C++ проектах действительно куча мейкфайлов и другого непонятного барахла. Я делаю так: создаю пустой консольный проект в Visual Studio, добавляю в него все c/cpp/h (при этом для понятности не в "Source Files"/"Header Files", а создаю папки в Solution Explorer, соответствующие подпапкам с исходниками, пытаюсь собрать; естественно, с первого раза это не получается
Дальше последовательными итерациями выпиливаю весь Linux-specific код — заменяю на кроссплатформенные аналоги, или докачиваю то чего не хватает, или дописываю сам, и в конечном итоге получаю работоспособную программу, которую уже можно изучать и модифицировать в нормальной IDE.
А мораль такова: если бы мейкфайлы и/или файлы проектов были включены в стандарт языка, и их формат был бы жестко документирован в тех же документах, что и сам язык — этого зоопарка бы не было, и ВСЕ(!!!) IDE и компиляторы были бы вынуждены работать с единым форматом проекта. Но увы, до этого еще никто не додумался, кроме меня И даже в Visual Studio с каждой новой версией будет появляться новый формат проекта, почему-то несовместимый со всеми предыдущими.
XC>А мораль такова: если бы мейкфайлы и/или файлы проектов были включены в стандарт языка, и их формат был бы жестко документирован в тех же документах, что и сам язык — этого зоопарка бы не было, и ВСЕ(!!!) IDE и компиляторы были бы вынуждены работать с единым форматом проекта. Но увы, до этого еще никто не додумался, кроме меня И даже в Visual Studio с каждой новой версией будет появляться новый формат проекта, почему-то несовместимый со всеми предыдущими.
make описан в сегодняшнем позиксе.
К сожалению, большинство разработчиков используют первую подходящую инструкцию которую они узнают, и не думают ни о каких стандартах.
Здравствуйте, x-code, Вы писали:
XC>А мораль такова: если бы мейкфайлы и/или файлы проектов были включены в стандарт языка, и их формат был бы жестко документирован в тех же документах, что и сам язык — этого зоопарка бы не было, и ВСЕ(!!!) IDE и компиляторы были бы вынуждены работать с единым форматом проекта. Но увы, до этого еще никто не додумался, кроме меня И даже в Visual Studio с каждой новой версией будет появляться новый формат проекта, почему-то несовместимый со всеми предыдущими.
Потому что файл проекта — это на самом деле не файл проекта, а файл настройки IDE, чтоб она смогла работать с этим проектом. И вполне естественно, что этот файл зависит как от самой IDE, так и от ее версии.
Здравствуйте, Aleх, Вы писали:
A>Я вот одного не понимаю. Программисты под линукс вообще используют среду разработки? Не редактор кода, а именно СРЕДУ РАЗРАБОТКИ.
кто как.
A>НО как, КАК? Мне из этой кучи скриптов и мейкфайлов создать проект для Эклипса?
те, кто у нас в команде работают в эклипсе, просто добавляют все файлы в проект и все.
A>Такое впечатление, что проекты разрабатываются в блокноте с подсветкой ключевых слов кода.
Ну в моем случае это действительно так. Был бы блокнот достаточно мощным (NEdit в моем случае).
A>И каждый раз при компиляции запускается командная строка. Скажите, это действительно так?
Да. У меня просто висит отдельное окошко с командной строкой (обычно не одно).
А предыдущая команда вызвается просто стрелкой вверх
Но мой блокнот (как и Emacs, как и VIM) умеют запускать эту команду для компиляции по горячей клавише и выводить сообщения об ошибках и прочем в отдельное окошко этого же блокнота, из которого ты можешь прыгать с ошибки на соответствующую строчку кода.
Так что консолью лично я для компиляции пользуюсь крайне редко.
Причем такая организация гораздо гибче. Например, ЕМНИП, в Студии можно собирать толко что-то одно, параллельный билд сразу нескольких проектов запустить нельзя. А у меня в NEdit можно, для каждого билда создастся отдельное окошечко, куда будут валиться ошибки, и все будет собираться параллельно. Так что становится очень удобно и быстро программить — пока одно редактируешь, другое-третье собирается там себе тихонько.
Плюс сообщения компилятора и, например, вывод grep (команда для поиска) имеют один и тот же формат, так что я могу сделать кучу поисков, как изнутри самого редакатора, так и снаружи, в консоли, если он сильно вывернутый, и просто скопировать результат в NEdit — и после этого могу прыгать из любого окна куда угодно, и последующие сеансы поиска не уничтожат то, что уже найдено.
A>Зачем же быть такими мазахистами?
Ну, мазохисты, как известно, получают от этого удовольствие Так что твой вопрос эквивалентен вопросу: "Зачем получать удовольствие?"
ЗЫ Ну и самое главное — "блокноты с подсветкой" НЕ ТОРМОЗЯТ!!!
Здравствуйте, Aleх, Вы писали:
E>>В отличие от винды и макоси, где существуют стандартные общеупотребимые IDE, поставляемые разработчиком оси, под линуксом такого дефакто-стандарта нет, каждый пользуется тем, что ему больше нравится. Поэтому непонятно, файл проекта от какой IDE надо поставлять с исходниками. E>>С другой стороны, есть make — стандартное средство для сборки и несколько IDE, которые умеют его подхватывать.
A>Ок, но в таком случае должен быть стандартный формат проекта, который должен легко импортироваться в разные IDE. A>Почему его нет? Почему вместо него makefile?
Так это он и есть. Создаешь где-нибудь новый проект, показываешь ему, где корневой мейкфайл лежит, вот и все. Когда жмешь хоткей для сборки, IDE твоя сама вызывает make.
Здравствуйте, Ytz, Вы писали:
Ytz>Здравствуйте, Nik_1, Вы писали:
N_>>Хз как в линуксе, а в студии это очень даже легко и удобно делается. И платформу выбираешь из комбобокса( как и вариант сборки).
Ytz>А какие из проектных файлов создаваемых студией ты хранишь в репозитории, как организована совместная работа? Ты же ведь не студент одиночка?
Троль решил воспользоваться своим главным аргументом — переходом на личности?
Здравствуйте, jazzer, Вы писали:
J>Потому что файл проекта — это на самом деле не файл проекта, а файл настройки IDE, чтоб она смогла работать с этим проектом. И вполне естественно, что этот файл зависит как от самой IDE, так и от ее версии.
Да ладно... Файлы проектов содержат имена файлов для компиляции, правила компиляции, опции компилятора. Это не настройки IDE. Можно было бы сделать так: определить на основе XML минимальную структуру файла проекта, которую обязаны поддерживать все, и разрешить разработчикам компиляторов и IDE дополнять ее новыми тегами и атрибутами, для хранения каких-то специфических параметров (те же настройки ide, если они действительно должны храниться в проекте?)
Параметры компилятора тоже не мешало бы стандартизировать таким же способом — посмотреть какие есть опции у распространенных компиляторов, упорядочить их в некую иерархическую модель опций, назначить им стандартные имена и все такое. Хотите дополнительные опции — именуйте их так, чтобы было понятно что они дополнительные (например, префикс "specific")
Здравствуйте, Aleх, Вы писали:
A>Такое впечатление, что проекты разрабатываются в блокноте с подсветкой ключевых слов кода. И каждый раз при компиляции запускается командная строка. Скажите, это действительно так? Зачем же быть такими мазахистами?
Ты не поверишь, есть люди, которые набирают код (ну не весь, но прилично) в страшном консольном FAR-е.
А по ночам, в полнолуние, они выходят на улицу... и ищут того, что так интересно расположил и поименовал каталоги в дефолтно создаваемых проектах в студии.
Здравствуйте, x-code, Вы писали:
XC>Да ладно... Файлы проектов содержат имена файлов для компиляции, правила компиляции, опции компилятора. Это не настройки IDE. Можно было бы сделать так: определить на основе XML минимальную структуру файла проекта, которую обязаны поддерживать все, и разрешить разработчикам компиляторов и IDE дополнять ее новыми тегами и атрибутами, для хранения каких-то специфических параметров (те же настройки ide, если они действительно должны храниться в проекте?) XC>Параметры компилятора тоже не мешало бы стандартизировать таким же способом — посмотреть какие есть опции у распространенных компиляторов, упорядочить их в некую иерархическую модель опций, назначить им стандартные имена и все такое. Хотите дополнительные опции — именуйте их так, чтобы было понятно что они дополнительные (например, префикс "specific")
Это звучит хорошо и даже, возможно было бы полезно, но на практике в итоге, все равно пришли бы к чему-то вроде Makefile или опций среды просто потому что ни одним стандартом невозможно охватить все.
Даже вот такой пример, допустим в проекте используется CUDA или OpenCL — и уже такая стандартизация не учитывает ряд нюансов при сборке проектов, хотя бы наличие компилятора от NVIDIA причем нужной версии (нужной версии CUDA). А если еще намешать в проект части на сильно разных языках, включая специфические модули от них? В рамках же Makefile (тем более типа Scons) все это можно разрулить, хотя и не без проблем тоже.
Здравствуйте, Ytz, Вы писали:
Ytz>Здравствуйте, Nik_1, Вы писали:
N_>>Хз как в линуксе, а в студии это очень даже легко и удобно делается. И платформу выбираешь из комбобокса( как и вариант сборки).
Ytz>А какие из проектных файлов создаваемых студией ты хранишь в репозитории, как организована совместная работа? Ты же ведь не студент одиночка?
Все кроме
Debug\*, Release\* (бинарные файлы)
*.ncb (большаааая база данных IntelliSense, по сути распарсенные инклуды из всего проекта и Platform SDK)
*.user (локальные настройки типа адреса последней машины, использовавшейся для удаленной отладки)
*.suo (снапшот состояния окон, открывающий все окошки-панельки 1-в-1 в том виде, в котором они были при закрытии проекта)
Эти правила были ОДИН РАЗ прописаны в глобальном игнор-листе SVN и всё. Добавление проектов теперь состоит в выборе TortoiseSVN->Add.
Что, кстати, гораздо удобнее Eclipse с его неперевариваемым .metadata
Здравствуйте, Nik_1, Вы писали:
N_>Здравствуйте, Ytz, Вы писали:
Ytz>>Здравствуйте, Nik_1, Вы писали:
N_>>>Хз как в линуксе, а в студии это очень даже легко и удобно делается. И платформу выбираешь из комбобокса( как и вариант сборки).
Ytz>>А какие из проектных файлов создаваемых студией ты хранишь в репозитории, как организована совместная работа? Ты же ведь не студент одиночка? N_>Троль решил воспользоваться своим главным аргументом — переходом на личности?
Извини если некорректно выразился. Ответь, пожалуйста, на заданный вопрос.
Здравствуйте, Ytz, Вы писали:
Ytz>Здравствуйте, Nik_1, Вы писали:
N_>>Здравствуйте, Ytz, Вы писали:
Ytz>>>Здравствуйте, Nik_1, Вы писали:
N_>>>>Хз как в линуксе, а в студии это очень даже легко и удобно делается. И платформу выбираешь из комбобокса( как и вариант сборки).
Ytz>>>А какие из проектных файлов создаваемых студией ты хранишь в репозитории, как организована совместная работа? Ты же ведь не студент одиночка? N_>>Троль решил воспользоваться своим главным аргументом — переходом на личности?
Ytz>Извини если некорректно выразился. Ответь, пожалуйста, на заданный вопрос.
Переформулируй его корректно — отвечу.
Здравствуйте, Wissenschaftler, Вы писали:
W>Здравствуйте, Ytz, Вы писали:
Ytz>>Здравствуйте, Nik_1, Вы писали:
N_>>>Хз как в линуксе, а в студии это очень даже легко и удобно делается. И платформу выбираешь из комбобокса( как и вариант сборки).
Ytz>>А какие из проектных файлов создаваемых студией ты хранишь в репозитории, как организована совместная работа? Ты же ведь не студент одиночка? W>Все кроме W>Debug\*, Release\* (бинарные файлы) W>*.ncb (большаааая база данных IntelliSense, по сути распарсенные инклуды из всего проекта и Platform SDK) W>*.user (локальные настройки типа адреса последней машины, использовавшейся для удаленной отладки) W>*.suo (снапшот состояния окон, открывающий все окошки-панельки 1-в-1 в том виде, в котором они были при закрытии проекта) W>Эти правила были ОДИН РАЗ прописаны в глобальном игнор-листе SVN и всё. Добавление проектов теперь состоит в выборе TortoiseSVN->Add. W>Что, кстати, гораздо удобнее Eclipse с его неперевариваемым .metadata
Понял, что хранить не надо, а что надо? Как мержить?
Здравствуйте, Ytz, Вы писали:
Ytz>Здравствуйте, Nik_1, Вы писали:
Ytz>>>Извини если некорректно выразился. Ответь, пожалуйста, на заданный вопрос. N_>>Переформулируй его корректно — отвечу.
Ytz>Я просто повторю, если формулировка тебе кажется некорректной, уточни пожалуйста в чем:
Ytz>
Ytz>какие из проектных файлов создаваемых студией ты хранишь в репозитории, как организована совместная работа?
у вижуал с++ всего один проектный файл — .vcproj.
Но есть еще куча файлов, которые нужно класть в репозиторий : воркспейс( начиная с 2002-й переименованый в солюшн), исходники, ресурсы, ...
Здравствуйте, Nik_1, Вы писали:
N_>Здравствуйте, Ytz, Вы писали:
Ytz>>Здравствуйте, Nik_1, Вы писали:
Ytz>>>>Извини если некорректно выразился. Ответь, пожалуйста, на заданный вопрос. N_>>>Переформулируй его корректно — отвечу.
Ytz>>Я просто повторю, если формулировка тебе кажется некорректной, уточни пожалуйста в чем:
Ytz>>
Ytz>>какие из проектных файлов создаваемых студией ты хранишь в репозитории, как организована совместная работа?
N_>у вижуал с++ всего один проектный файл — .vcproj. N_>Но есть еще куча файлов, которые нужно класть в репозиторий : воркспейс( начиная с 2002-й переименованый в солюшн), исходники, ресурсы, ...
Ответь, пожалуйста, на вопрос, что конкретно хранят относящееся к сборке проекта в репозитории у тебя на работе. Как мержите?
Здравствуйте, Ytz, Вы писали:
Ytz>Здравствуйте, Nik_1, Вы писали:
N_>>Здравствуйте, Ytz, Вы писали:
Ytz>>>Здравствуйте, Nik_1, Вы писали:
Ytz>>>>>Извини если некорректно выразился. Ответь, пожалуйста, на заданный вопрос. N_>>>>Переформулируй его корректно — отвечу.
Ytz>>>Я просто повторю, если формулировка тебе кажется некорректной, уточни пожалуйста в чем:
Ytz>>>
Ytz>>>какие из проектных файлов создаваемых студией ты хранишь в репозитории, как организована совместная работа?
N_>>у вижуал с++ всего один проектный файл — .vcproj. N_>>Но есть еще куча файлов, которые нужно класть в репозиторий : воркспейс( начиная с 2002-й переименованый в солюшн), исходники, ресурсы, ...
Ytz>Ответь, пожалуйста, на вопрос, что конкретно хранят относящееся к сборке проекта в репозитории у тебя на работе. Как мержите?
Это специфично для каждого проекта. Если в приложении есть иконки — хранятся в репозитории. Есть разные картинки, звуки и т.п. — тудаже. Набор хранимых в репозитории типов файлов специфичен для разных проектов.