реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Где хранить свои lib?
HEX
сообщение May 26 2008, 07:44
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 54
Регистрация: 25-11-04
Из: Тула
Пользователь №: 1 228



Есть несколько проектов и общее lib, где размещать lib?
Литература на это тему есть?
Go to the top of the page
 
+Quote Post
zltigo
сообщение May 26 2008, 08:07
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



А без "литературы", просто подумать и сделать так, как разумно для этого случая?


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
rezident
сообщение May 26 2008, 09:56
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(HEX @ May 26 2008, 13:44) *
Есть несколько проектов и общее lib, где размещать lib?

У меня используется структура подкаталогов. Хидеры в каталоге _INC лежат, исходники в каталоге _LIB. Все пути в исходниках использую относительные. Общие для нескольких проектов исходники и хидеры лежат в одноименных каталогах, но уровнем выше. Перенести проект на другой диск или в другой подкаталог с сохранением структуры проекта не составляет особой сложности.
Go to the top of the page
 
+Quote Post
HEX
сообщение May 27 2008, 06:42
Сообщение #4


Участник
*

Группа: Свой
Сообщений: 54
Регистрация: 25-11-04
Из: Тула
Пользователь №: 1 228



Цитата(zltigo @ May 26 2008, 12:07) *
А без "литературы", просто подумать и сделать так, как разумно для этого случая?

не хотелось бы велосипед изобретать, тем более что все тонкости сразу не учтеш.
Go to the top of the page
 
+Quote Post
HEX
сообщение May 27 2008, 08:18
Сообщение #5


Участник
*

Группа: Свой
Сообщений: 54
Регистрация: 25-11-04
Из: Тула
Пользователь №: 1 228



Цитата(rezident @ May 26 2008, 13:56) *
У меня используется структура подкаталогов. Хидеры в каталоге _INC лежат, исходники в каталоге _LIB. Все пути в исходниках использую относительные. Общие для нескольких проектов исходники и хидеры лежат в одноименных каталогах, но уровнем выше. Перенести проект на другой диск или в другой подкаталог с сохранением структуры проекта не составляет особой сложности.


С хидерами вроде понятно, для подключения пишем:
#include "..\_LIB\file.h"
(порядок включения, как я понимаю, - после хидеров проекта, перед стандартной библиотекой)
Можно наврное, добавлять путь"..\_INC\" в опциях предпроцессора, но тогда будут проблемы при однаковых именах хидеров, и менее наглядно, чем "..\_LIB\file.h" - сразу видну что хидер из библиотеки.

А исходники библиотеки придется добовлять в проект? Чего лучше использовать исходники или объектные?

И еще вопрос, в чем приимущества перед размещением в toolkit_dir?
Go to the top of the page
 
+Quote Post
zltigo
сообщение May 27 2008, 08:26
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(HEX @ May 27 2008, 10:18) *
С хидерами вроде понятно, для подключения пишем:
#include "..\_LIB\file.h"

Ну "наглядность" наглядностью, а возможность тасовки исходников резко снижается. Оптимальнее пути поиска все-же указывать компилятору.
Цитата
(порядок включения, как я понимаю, - после хидеров проекта, перед стандартной библиотекой)

Ну для начала стандартные указвабтся прежде всего, ибо по опредлению совершенно не зависят от того, что Вы дальше напишите. Остальное.
Цитата
А исходники библиотеки придется добовлять в проект? Чего лучше использовать исходники или объектные?

Лучше ни то, ни другое - лучше библиотеки. Ну они именно для этого сосданы и именно так и называются smile.gif


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
HEX
сообщение May 27 2008, 09:40
Сообщение #7


Участник
*

Группа: Свой
Сообщений: 54
Регистрация: 25-11-04
Из: Тула
Пользователь №: 1 228



Цитата(zltigo @ May 27 2008, 12:26) *
Лучше ни то, ни другое - лучше библиотеки. Ну они именно для этого сосданы и именно так и называются smile.gif

А как будет происходить отладка? можно будет посмотреть чего делается в модулях библиотеки?

Цитата(zltigo @ May 27 2008, 12:26) *
Ну для начала стандартные указвабтся прежде всего, ибо по опредлению совершенно не зависят от того, что Вы дальше напишите. Остальное.
В умных книжках рекомендует включать хидеры от специализированных к более общим, цитата (в цитате) из книги Брюс Эккель Филосовия С++:

Заголовки включаются в порядке "отспециализированных к общим". Иначе говоря сначала включаются все заголовочные файлы в текущим каталоге, затем заголовочные файлы личного инструментария автора, затем заголовки стандартной библиотеки С++ и наконец, - заголовочные файлы библиотеки С.
Джон Лакос в своей книги "Large-Scale C++ Software Deign" так обосновывает эту последовательность
Автономная обработка h-файлов компонента (без внешних объявлений и определений) помогает предотвратить скрытые ошибки. Включение h-файла в самой первой строке c-файла гарантирует присутствие всей критически важной информации, относящейся к физическому интерфейса компонент (или ее отсутствие обнаружиться немедленно при попытке откомпилировать c-файл).
Если заголовочные файлы включаются в порядке "от специализированных к общим", вы быстрее обнаружите те из них, которые не обрабатываются автономно, и избавите сеюя от дальнейших огорчений.
Go to the top of the page
 
+Quote Post
Itch
сообщение Jun 13 2008, 11:19
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 358
Регистрация: 27-06-06
Из: Новосибирск
Пользователь №: 18 410



>>>Заголовки включаются в порядке "отспециализированных к общим".

Считаю это неправильным, т.к. я могу в своих *.h файлах задефайнить какое-нибудь слово, и оно вполне возможно, что уже продефайнено где-то еще, в стандартных библиотеках. То что продефайнил сам, то помнишь и используешь нормально. Если вдруг надо использовать дефайн из стандартной библиотеки, то тоже вероятность обнаружить коллизию больше.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 01:10
Рейтинг@Mail.ru


Страница сгенерированна за 0.01387 секунд с 7
ELECTRONIX ©2004-2016