Russian Qt Forum

Qt => Общие вопросы => Тема начата: boobsik от Август 17, 2009, 10:19



Название: своя библиотека на исходниках
Отправлено: boobsik от Август 17, 2009, 10:19
вот допустим у меня есть уже написанные классы начинающиеся с ML(MyLibrary) MLTcpServer, MLDataModel, MLItem и много других.. Я храню все файлы *.h и *.cpp на диске D:\ в папке ML.
Что мне необходимо добавить в проект, чтобы использовать эту библиотеку? И интересует, как свою библиотеку сделать максимально корректно?


Название: Re: своя библиотека
Отправлено: pastor от Август 17, 2009, 10:23
Аналогичный тем на форуме много. Юзай поиск


upd/

 Например вот: http://www.prog.org.ru/topic_8259_0.html


Название: Re: своя библиотека
Отправлено: boobsik от Август 17, 2009, 10:32
я не имел ввиду dll библиотеку, просто заговолки и исходники, нехочу компилить! пожалуйста читайте внимательно! спасибо! есть файлы *.cpp, есть файлы *.h, файлов *.dll нет у меня! вместо ответа, который возможно приблизит меня к решению проблемы вы даете наобум и вероятно следующий форумчанин увидев, что ответы в топике уже существуют незахочет сюда зайти и прочитать, таким образом это меня отдалит от решения  :'(


Название: Re: своя библиотека
Отправлено: lit-uriy от Август 17, 2009, 10:38
Можно сделать pri-файл, примерный его текст такой:
Код
Bash
HEADERS       += $$PWD/myfile.h
SOURCES       += $$PWD/myfile.cpp
 
INCLUDEPATH  += $$PWD
DEPENDPATH  += $$PWD
 
RESOURCES     += $$PWD/myfile.qrc
 
где переменная $$PWD, при анализе, содержит текущий путь к данному pri-файлу ("./" писать нельзя так как он будет означть текущикаталог вышестоящего файла проекта)

Используешь в фале проекта так:
include(path/to/my.pri)


Название: Re: своя библиотека
Отправлено: ритт от Август 17, 2009, 10:51
> Что мне необходимо добавить в проект, чтобы использовать эту библиотеку?
и
> я не имел ввиду dll библиотеку

сам бы определился прежде, чем задавать вопрос.

и
> нехочу компилить

кидай сюда - кто-нибудь из доброжелателей скомпилит.

итого: *ты* отдаляешь себя от решения.


Название: Re: своя библиотека
Отправлено: boobsik от Август 17, 2009, 10:52
Можно сделать pri-файл
это оно!) скажите, а
HEADERS       += $$PWD/myfile.h
SOURCES       += $$PWD/myfile.cpp
само по себе не отягощает мою программу? определяет класс в теле программы? Я его нигде не использую например и не делаю #include <myfile.h> нигде, значит его как-бы и нет?
З.Ы. Спасибо за предыдущий ответ!


Название: Re: своя библиотека
Отправлено: pastor от Август 17, 2009, 10:54
Офф:

я не имел ввиду dll библиотеку, просто заговолки и исходники, нехочу компилить! пожалуйста читайте внимательно! спасибо!

Собственно говоря кинулась в глаза фраза:

Цитировать
И интересует, как свою библиотеку сделать максимально корректно?

По приведенной мной ссылке есть описание как "сделать свою библиотеку" и как её использовать. Или вы имеете ввиду что-то другое под названием "библиотека"?


По теме:

Полностью поддерживаю идею Юрия. Пример такого pri-файла можно посмотреть, например, в Qt4 Solutions


Название: Re: своя библиотека
Отправлено: boobsik от Август 17, 2009, 10:56
прошу прощения, а библиотека разве не бывает на исходниках?


Название: Re: своя библиотека
Отправлено: pastor от Август 17, 2009, 11:02
прошу прощения, а библиотека разве не бывает на исходниках?

Бывает. Еще раз повторюсь - сбила с толку фраза "сделать свою библиотеку" (сделать из набора *.h и *.cpp на диске D:\ в папке ML)


Название: Re: своя библиотека на исходниках
Отправлено: boobsik от Август 17, 2009, 11:05
Всем огромное спасибо! Меняю тему :)


Название: Re: своя библиотека
Отправлено: ритт от Август 17, 2009, 11:05
бывают, конечно. обычно это библиотеки печатных изданий :)
а ты, вероятно, подразумевал статическую библиотеку...или же вложенный проект (но это менее вероятно) - тут Юрий уже подсказал...


Название: Re: своя библиотека на исходниках
Отправлено: boobsik от Август 17, 2009, 11:36
у меня еще одна проблема, все файлы отображаются в проекте, а я этого не хотел бы, можно подключить данные файлы к проекту, чтобы они не отягащали интерфейс среды разработки? просто необходимости их редактировать и видеть перед глазами нет)


Название: Re: своя библиотека на исходниках
Отправлено: ритт от Август 17, 2009, 11:37
статическая библиотека


Название: Re: своя библиотека на исходниках
Отправлено: boobsik от Август 17, 2009, 11:49
ну вот я в файле проекта(*.pro) например присоединяю директорию с хедерами библиотеки
INCLUDEPATH += D:\Projects\ML
и хедеры прекрасно видны! Что необходимо дописать, чтобы стала видна директория с исходниками(*.cpp)? А то ошибки что функции есть, а ссылок на них нет (undefined reference to `MLTcpServer::MLTcpServer(QObject*)')    :-[


Название: Re: своя библиотека на исходниках
Отправлено: boobsik от Август 17, 2009, 13:22
Ладно, придется ограничится статической библиотекой, раз уж все так делают )


Название: Re: своя библиотека на исходниках
Отправлено: lit-uriy от Август 17, 2009, 18:05
>>само по себе не отягощает мою программу?
тут идея простая, в коде (*.h и *.cpp файлах), выше указанные исходники используются как обычно.
А pri-файл сделан только ради одной цели - чтобы в данный проект можно было одной строчкой включить все необходимые файлы "модуля" (по твоему "библиотеки").


Если ты в самом коде не используешь эти файлы, то и в файл проекта незачем подключать этот pri-файл.
(относительно Креатора ничего не скажу - не пользуюсь)


Название: Re: своя библиотека на исходниках
Отправлено: ритт от Август 17, 2009, 18:42
креатор отображает все вложенные проекты в дереве - по ветке на такой проект...не слишком удобно, честно говоря...

и всё же, я бы советовал динамическую библиотеку (или статическую, если она больше нигде пригодиться не может)