crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Создание и использование динамических библиотек
RazrFalcon
  опции профиля:
сообщение 27.9.2010, 19:44
Сообщение #1


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

Спасибо сказали: 64 раз(а)




Репутация:   212  


Краткое HOW TO пожалуйста. Все что нахожу, какая то ересь не имеющая никакого отношения к кьюту, и это на считая что 4/5 выданных вариантов на запрос о динамических библиотеках относится к тому "как скомпилить кьют в статике".
Вкратце:
нужно собрать под лином динамическую библиотеку, а потом основной прогой (gui или cli неважно) ее использовать. То есть мне нужно чтоб можно было менять некоторый функционал проги без перекомпиляции основного файла. Ну и чтоб другие проги тоже использовали.
Одним словом нужно собрать shared libraris aka .so
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
igor_bogomolov
  опции профиля:
сообщение 27.9.2010, 22:47
Сообщение #2


Профессионал
*****

Группа: Сомодератор
Сообщений: 1215
Регистрация: 22.3.2009
Из: Саратов
Пользователь №: 630

Спасибо сказали: 235 раз(а)




Репутация:   29  


Цитата(RazrFalcon @ 27.9.2010, 20:44) *
Краткое HOW TO пожалуйста.
Минимальный пример
Код библиотеки
testlib.h
#ifndef TESTLIB_H
#define TESTLIB_H

#include "test_global.h"
#include <QtCore/QString>

class SHARED_LIB_EXPORT TestLib {
public:
    TestLib();

    QString toUpper(const QString& str);
    QString toLower(const QString& str);
};

#endif // TESTLIB_H
testlib.cpp
#include "testlib.h"

TestLib::TestLib()
{
}

QString TestLib::toUpper(const QString& str)
{
    return str.toUpper();
}

QString TestLib::toLower(const QString& str)
{
    return str.toLower();
}
testlib_global.h
#ifndef TEST_GLOBAL_H
#define TEST_GLOBAL_H

#include <QtCore/qglobal.h>

#if defined(TEST_LIBRARY)
#  define SHARED_LIB_EXPORT Q_DECL_EXPORT
#else
#  define SHARED_LIB_EXPORT Q_DECL_IMPORT
#endif

#endif // TEST_GLOBAL_H
testlib.pro
QT       -= gui

TARGET   = test
TEMPLATE = lib

DEFINES += TEST_LIBRARY

SOURCES += testlib.cpp
HEADERS += testlib.h\
        test_global.h


Использование в проекте. Т.е. один из вариантов использования
main.cpp
#include <QtCore/QCoreApplication>
#include "../testlib/testlib.h"

#include <QtDebug>

int main()
{
    TestLib lib;
    qDebug() << lib.toUpper("test");
    qDebug() << lib.toLower("TesT");
    return 0;
}
usage_lib.pro
QT       += core
QT       -= gui

TEMPLATE = app
TARGET   = usage_lib
CONFIG  += console

LIBS += -L../testlib-build-desktop -ltest

SOURCES += main.cpp

Подробности в assistent'e
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- RazrFalcon   Создание и использование динамических библиотек   27.9.2010, 19:44
- - Litkevich Yuriy   Цитата(RazrFalcon @ 27.9.2010, 23:44) Все...   27.9.2010, 20:00
- - RazrFalcon   Конечно, но большинство уже проблемы с готовыми би...   27.9.2010, 20:33
- - Litkevich Yuriy   приведи пример того, что ты нашёл у нас на форуме   27.9.2010, 21:42
- - RazrFalcon   Вот и вот к примеру, ничего полезного для себя не ...   27.9.2010, 21:51
- - igor_bogomolov   Цитата(RazrFalcon @ 27.9.2010, 20:44) Кра...   27.9.2010, 22:47
- - Litkevich Yuriy   вот тема с примером вот ещё   28.9.2010, 10:38
|- - RazrFalcon   igor_bogomolov разобрался в принципе, все работает...   28.9.2010, 15:21
- - igor_bogomolov   Цитата(RazrFalcon)из всего выше написанного я не п...   28.9.2010, 15:35
- - Litkevich Yuriy   Цитата(RazrFalcon @ 28.9.2010, 19:21) как...   28.9.2010, 16:18
- - igor_bogomolov   Цитатаigor_bogomolov, не поддерживай кашу. Одна пр...   28.9.2010, 16:38
|- - RazrFalcon   igor_bogomolov огромное спасибо, разобрался с либа...   28.9.2010, 17:20
- - Litkevich Yuriy   Цитата(igor_bogomolov @ 28.9.2010, 20:38)...   28.9.2010, 22:24
- - igor_bogomolov   Цитата(Litkevich Yuriy @ 28.9.2010, 23:24...   28.9.2010, 23:23
- - RazrFalcon   Я дико извиняюсь за то что вызвал сей спор, но я к...   29.9.2010, 13:55
|- - Sokoloff   Цитата(RazrFalcon @ 29.9.2010, 14:55) Я д...   29.9.2010, 14:32
- - RazrFalcon   LIBS += -llibtestпочему он не видит либу которую я...   4.10.2010, 13:46
- - kuzulis   Цитатапочему он не видит либу которую я скинул к б...   4.10.2010, 14:18
|- - RazrFalcon   Цитата(kuzulis @ 4.10.2010, 14:18) Цитата...   4.10.2010, 14:25
- - Sokoloff   RazrFalcon, есть еще вариант как сделать GUI/CLI п...   5.10.2010, 23:19
- - RazrFalcon   Sokoloff Да вариант разумный, просто хотелось науч...   5.10.2010, 23:36


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 22.12.2024, 16:15