Russian Qt Forum

Qt => Дополнительные компоненты => Тема начата: deMax от Октябрь 11, 2016, 09:39



Название: [РЕШЕНО] Не обновляется библиотека
Отправлено: deMax от Октябрь 11, 2016, 09:39
Создал проект: maip.pro: TEMPLATE = subdirs ; CONFIG += ordered ; SUBDIRS = lib gui console test
lib.pro: TEMPLATE = lib ; CONFIG += staticlib
gui console test *.pro: INCLUDEPATH += $$PWD/../lib ; LIBS += -L$$PWD/../bin -llib

Проблема в том, что когда изменяю что то в библиотеке в остальных проектах ничего не меняется, нужно выбрать "пересобрать все" или пересобрать отдельный проект gui/console/test.


Название: Re: Не обновляется библиотека
Отправлено: __Heaven__ от Октябрь 11, 2016, 11:45
Попробуйте задействовать DEPENDPATH


Название: Re: Не обновляется библиотека
Отправлено: Bepec от Октябрь 11, 2016, 11:46
Вроде есть там опция зависимостей, вполне мб депенд, но у меня она работала чрезвыйчайно криво :)


Название: Re: Не обновляется библиотека
Отправлено: lit-uriy от Октябрь 11, 2016, 13:06
В самом креаторе (если он используется) в настройках проекта есть зависимости их можно настроить и он будет пересобирать


Название: Re: Не обновляется библиотека
Отправлено: ssoft от Октябрь 11, 2016, 16:32
В проекте используется статическая библиотека. Если правите только ее исходники, не меняя заголовки, компилятор не видит изменения в других проектах.
К сожалению ни INCLUDEPATH, ни DEPENDPATH не помогают, приходится пересобирать зависимые проекты вручную.


Название: Re: Не обновляется библиотека
Отправлено: Old от Октябрь 11, 2016, 16:37
Проблема в том, что когда изменяю что то в библиотеке в остальных проектах ничего не меняется, нужно выбрать "пересобрать все" или пересобрать отдельный проект gui/console/test.

А так?
Код:
TEMPLATE = subdirs
CONFIG += ordered
SUBDIRS = lib gui console test

gui.depends = lib
console.depends = lib
test.depends = lib


Название: Re: Не обновляется библиотека
Отправлено: deMax от Октябрь 19, 2016, 09:00
А так?
У меня не работает, пока пересобрать не нажмешь ничего не измениться.

Накидал тестовый пример(который тоже не работает):
Код:
--- testlib.pro

TEMPLATE = subdirs
SUBDIRS = lib test
test.depends = lib

--- lib/lib.pro

QT       -= core gui
TARGET = lib
TEMPLATE = lib
DESTDIR = $$PWD/../bin
SOURCES += lib.cpp
CONFIG += staticlib
HEADERS += lib.h

--- lib/lib.cpp

#include "lib.h"
std::string TestLib::getText() { return "zzzzz"; }

--- lib/lib.h

#ifndef LIB_H
#define LIB_H
#include <iostream>
class TestLib {
public:
    static std::string getText(); };
#endif // LIB_H

--- test/test.pro

QT -= core gui
CONFIG += c++11
TARGET = test
CONFIG += console
CONFIG -= app_bundle
TEMPLATE = app
SOURCES += main.cpp
INCLUDEPATH += $$PWD/../lib
LIBS += -L$$PWD/../bin -llib

--- test/main.cpp

#include "../lib/lib.h"
int main()
{
    std::cout << TestLib::getText();
    return 0; }



Название: Re: Не обновляется библиотека
Отправлено: kuzulis от Октябрь 19, 2016, 09:20
Используйте qbs, как вариант.


Название: Re: Не обновляется библиотека
Отправлено: Old от Октябрь 19, 2016, 09:40
В test.pro добавьте еще строку:
Код:
PRE_TARGETDEPS = $$PWD/../bin/liblib.a

Это qmake. :)


Название: Re: Не обновляется библиотека
Отправлено: Old от Октябрь 19, 2016, 09:59
Используйте qbs, как вариант.
Или CMake.


Название: Re: Не обновляется библиотека
Отправлено: deMax от Октябрь 19, 2016, 11:20
В test.pro добавьте еще строку:
Код:
PRE_TARGETDEPS = $$PWD/../bin/liblib.a

Это qmake. :)
Спасибо, помогло.