Здравствуйте, Vain, Вы писали:
R>>2) под CVS приходится помещать всю папку, в которой хранятся все проекты вмеесте с библиотечными исходниками. V>у нас Perforce недавно появился, так там отстой — подпапка в depot полжна быть такой же подпапкой как на диске, без проблем не бывает. А вообще в перфорсе и с меню отстой, все забабахано в кучу, и на каждый чих надо хрен знает что сделать.. Ж(
Забудьте CVS (может и Perforce — не знаю, не пользовался), пользуйтесь svn — лучше во всех отношениях.
Re: Где размещать общие для нескольких проектов исходные фай
Я использую Visual Stidio 2003. У меня есть несколько проектов, написанных на С/С++.
Многие из них используют вспомогательные "библиотечные" функции, написанные мною же.
Как сделать так, чтобы не копировать файлы с часто используемым кодом в разные проекты, а хранить их все в одном месте?
Как у меня все расположено сейчас:
Projects
Common
*.cpp
*.h
MyProject1
Specs
Docs
...
MyProject1
*.cpp
MyProject2
Specs
Docs
...
MyProject2
*.cpp
*.h
Собственно почему мне не нравится хранить библиотечные исходники в отдельной директории на том же уровне, что и остальные проекты:
1) в тексте программ получается надо использовать конструкции вроде
#include"..\..\Common\mysourcefile.h"
Что при копировании на соседнюю машину может и нескомпилироваться без переделок.
2) под CVS приходится помещать всю папку, в которой хранятся все проекты вмеесте с библиотечными исходниками.
Подскажите, как мне правильно расположить файлы.
Спасибо.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
21.02.06 12:43: Перенесено модератором из 'C/C++. Прикладные вопросы' — Кодт
Re: Где размещать общие для нескольких проектов исходные фай
Здравствуйте, Rothmans, Вы писали:
R>Многие из них используют вспомогательные "библиотечные" функции, написанные мною же. R>Как сделать так, чтобы не копировать файлы с часто используемым кодом в разные проекты, а хранить их все в одном месте?
так и храни их в одном месте, укажи путь к этому месту через опцию /I (Additional Include Directories)
у нас так:
Engine
_Libs
*.obj
*.lib
_Projects
*.sln
*.vcproj
_Run
*.exe
*.cfg
*.dll
короче папка с работающей программой и её каталогами
_Sources
*.cpp
*.h(pp)
сторонние библиотеки в исходниках
SubProject1
тоже самое,токо для подпроекта
SubProject2
etc
при сортировке все каталоги не подпроектов обычно "всплывают" наверх
R>1) в тексте программ получается надо использовать конструкции вроде
не надо такого в исходниках писать, включай по возможности файлы так, как будто они все в одной куче, а пути пропишешь в поиске.. R>Что при копировании на соседнюю машину может и нескомпилироваться без переделок.
копируй вместе с проектом (*.vcproj) R>2) под CVS приходится помещать всю папку, в которой хранятся все проекты вмеесте с библиотечными исходниками.
у нас Perforce недавно появился, так там отстой — подпапка в depot полжна быть такой же подпапкой как на диске, без проблем не бывает. А вообще в перфорсе и с меню отстой, все забабахано в кучу, и на каждый чих надо хрен знает что сделать.. Ж(
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Re[2]: Где размещать общие для нескольких проектов исходные
Здравствуйте, Vain, Вы писали:
V>так и храни их в одном месте, укажи путь к этому месту через опцию /I (Additional Include Directories) V>у нас так: V>
V>Engine
V> _Libs
V> *.obj
V> *.lib
V> _Projects
V> *.sln
V> *.vcproj
V> _Run
V> *.exe
V> *.cfg
V> *.dll
V> короче папка с работающей программой и её каталогами
V> _Sources
V> *.cpp
V> *.h(pp)
V> сторонние библиотеки в исходниках
V> SubProject1
V> тоже самое,токо для подпроекта
V> SubProject2
V> etc
V>
V>при сортировке все каталоги не подпроектов обычно "всплывают" наверх
Правильно ли я понял, что ты предлагаешь primary output (сборки) всех проектов располагать в одной директории, исходники этих проектов в другой, obj и lib файлы всех проектов в третьей?
Это ж сколько перенастраивать стандартно созданный проект визуал студии!
Плюс не скопировать проект никуда (по крайней мере потому что .proj файлы отделены от исходников). Плюс на каждый проект отдельная поддиректория в директориях типа файлов. У меня например почти в каждом проекте хранится документация к нему, спецификации, фирмвари и др. Создавать на каждый тип документации свою папку, а в ней поддиректории по одной на проект?
По-моему сильно запутанно это, в чем выигрыш?
R>>1) в тексте программ получается надо использовать конструкции вроде V>не надо такого в исходниках писать, включай по возможности файлы так, как будто они все в одной куче, а пути пропишешь в поиске..
тогда при копировании на другую машину точно компилиться не будет
R>>Что при копировании на соседнюю машину может и нескомпилироваться без переделок. V>копируй вместе с проектом (*.vcproj)
этот файл надо выцеплять из папки _Projects отдельно?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: Где размещать общие для нескольких проектов исходные фай
Здравствуйте, Rothmans, Вы писали:
R>Как сделать так, чтобы не копировать файлы с часто используемым кодом в разные проекты, а хранить их все в одном месте?
Если есть возможность, почитай книгу Эда Салливана "Время — деньги" (Under Pressure And On Time). В пятой главе он рассказывает о решении этого и других вопросов в NuMega.
Хорошо там, где мы есть! :)
Re[3]: Где размещать общие для нескольких проектов исходные
А>Забудьте CVS (может и Perforce — не знаю, не пользовался), пользуйтесь svn — лучше во всех отношениях.
Зачем же так категорично? Переводить мне лениво, а на англ. или русском под рукой не оказалось :
-Die gleichen Daten (z. B. nach Konvertierung) benötigen in einem Subversion-Repository deutlich mehr Platz als in einem CVS-Repository.
Subversion gilt als stabil, allerdings wird CVS bereits rund 20 Jahre verwendet, sollte also noch weniger Bugs enthalten.
-Wenn das Berkeley-Datenbanksystem für Subversion als Repository-Grundlage verwendet wird, unterliegen die Daten einerseits dessen binären Inkompatibilitäten abhängig von der verwendeten Version, und andererseits den damit eingebrachten Stabilitätsproblemen. Dies kann zur Folge haben, dass ein mit einer älteren Version erstelltes Repository auf die neue Version angepasst werden muss. Zudem ist der Zugriff über NFS dann nicht sicher möglich.
-Durch das Fehlen einer Semantik für Tags ist bei gehobenen Ansprüchen an das Versionskontrollsystem die Angabe der Revisionsnummer als Referenz, beispielsweise beim Bug-Tracking oder in der Dokumentation, unabdingbar. Die Verwendung von Server-seitigen Scripts kann steuern, ob, wie und von wem erstellte Tags modifiziert werden können.
Re: Где размещать общие для нескольких проектов исходные фай
Здравствуйте, Rothmans, Вы писали:
R>Привет всем,
R>Я использую Visual Stidio 2003. У меня есть несколько проектов, написанных на С/С++. R>Многие из них используют вспомогательные "библиотечные" функции, написанные мною же. R>Как сделать так, чтобы не копировать файлы с часто используемым кодом в разные проекты, а хранить их все в одном месте? R>Как у меня все расположено сейчас:
R>1) в тексте программ получается надо использовать конструкции вроде R>
R>#include"..\..\Common\mysourcefile.h"
R>
R>Что при копировании на соседнюю машину может и нескомпилироваться без переделок. R>2) под CVS приходится помещать всю папку, в которой хранятся все проекты вмеесте с библиотечными исходниками.
R>Подскажите, как мне правильно расположить файлы.
А где угодно — хоть на луне.
Все директории референси один раз в настройках проекта в секции Include компилятора, емнип.
И все...
и будет такой код:
#include"myfile.h"
С уважением, Анатолий Попов.
ICQ: 995-908
Re: Где размещать общие для нескольких проектов исходные фай
Здравствуйте, Rothmans, Вы писали:
R>1) в тексте программ получается надо использовать конструкции вроде R>
R>#include"..\..\Common\mysourcefile.h"
R>
R>Что при копировании на соседнюю машину может и нескомпилироваться без переделок. R>2) под CVS приходится помещать всю папку, в которой хранятся все проекты вмеесте с библиотечными исходниками.