Russian Qt Forum

Qt => Установка, сборка, отладка, тестирование => Тема начата: izoomer от Март 03, 2009, 17:09



Название: QT-4.4.3 Linux - своя библиотека static
Отправлено: izoomer от Март 03, 2009, 17:09
Никогда не делал такого , начинающий вопрос - не бейте.
Есть проект в котором создается static-lib. Само собой создается mylib.a.
Хотелось бы в других проектах использовать эту либу по культурному, то есть в папку с проектом в includes и libs кладм соответсвенно заголовочный файл и либу и работаем с классом созданным в либе.
Сейчас просто подключаю h файл из папки с исходниками либы и работаю. А если вот кладу этот h в папку к проекту и кладу либу то требует все включаемые файлы в либе . Хтел сделать один интерфейсный заголовочник и все.
подскажиет как сделать ?


Название: Re: QT-4.4.3 Linux - своя библиотека static
Отправлено: Rcus от Март 03, 2009, 17:35
Ну может ваш .h файл покажете? Подозреваю подключение внутренних заголовков


Название: Re: QT-4.4.3 Linux - своя библиотека static
Отправлено: izoomer от Март 03, 2009, 17:46
Ну может ваш .h файл покажете? Подозреваю подключение внутренних заголовков
Да, есть подключение внутренних заголовков:
Код:

#ifndef JDEVICEDISPATCHER_H
#define JDEVICEDISPATCHER_H

#include <QStack>
#include <QDomDocument>
#include <QBitArray>
#include <QFileInfo>

#include "usbDevice.h"
#include "JConfigModel.h"
#include "JCountersXMLDocument.h"
#include "JConfigXMLDocument.h"
extern "C"{
#include "t-encrypt-sign.h"
}

class JDeviceDispatcher : public QWidget
{
Q_OBJECT
Q_ENUMS(InitFlags)
public:
enum InitFlags { initCounters , initConfig , initAll , null};

JDeviceDispatcher(QWidget *_parent = 0, InitFlags fl = initAll );
~JDeviceDispatcher();

void setObject(QObject * sender, const QStringList & connectSignals);
usbDevice * getDevice();
usbDevice * device;

JCountersXMLDocument * getCountersXMLDocument();
JConfigXMLDocument * getConfigXMLDocument();

bool emptyDevice();
bool initDevice();

private:
QFile * fileLCDText;
InitFlags flags;

QStack < QPair<QObject*,QStringList> > objects;
QDomDocument docConfig;
QDomDocument docCounters;

bool configIsCreate;
bool countersIsCreate;

JCountersXMLDocument * countersDocument;
JConfigXMLDocument * configDocument;

private slots:

void disconnectObject(QObject *);
void readAllData();
void countersEmpty( const QByteArray & data );
void configEmpty( const QByteArray & data );

signals:
void isReadyWork();
void errorReadCounters(const QString &);
void errorReadConfig(const QString &);
public slots:
void setBlock( bool );
    void resetDevice();
    void setTextLCD(QString);

};

#endif





Название: Re: QT-4.4.3 Linux - своя библиотека static
Отправлено: Rcus от Март 03, 2009, 17:56
Ну вот и все. Включенные в заголовок файлы становятся частью интерфейса библиотеки :)
http://techbase.kde.org/Policies/Library_Code_Policy - советую прочитать.


Название: Re: QT-4.4.3 Linux - своя библиотека static
Отправлено: izoomer от Март 03, 2009, 17:57
Ну вот и все. Включенные в заголовок файлы становятся частью интерфейса библиотеки :)
http://techbase.kde.org/Policies/Library_Code_Policy - советую прочитать.
а что нужно сделать чтобы был один интерфейсный заголовочник ? как скомпоновать нужно все эти заголовочники что бы в один все всунуть ?


Название: Re: QT-4.4.3 Linux - своя библиотека static
Отправлено: izoomer от Март 04, 2009, 11:56
подскажите кто нибудь .
Есть несколько файлов в проекте cpp и h , главный файл с главным классом описан выше. Как мне сделать что бы один заголовочный фалй можно было полочить в includes а либу положить в libs и работало .