Russian Qt Forum
Ноябрь 22, 2024, 17:16 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: [РЕШЕНО] Не обновляется библиотека  (Прочитано 8736 раз)
deMax
Хакер
*****
Offline Offline

Сообщений: 600



Просмотр профиля
« : Октябрь 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.
« Последнее редактирование: Октябрь 19, 2016, 11:20 от deMax » Записан
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #1 : Октябрь 11, 2016, 11:45 »

Попробуйте задействовать DEPENDPATH
Записан
Bepec
Гость
« Ответ #2 : Октябрь 11, 2016, 11:46 »

Вроде есть там опция зависимостей, вполне мб депенд, но у меня она работала чрезвыйчайно криво Улыбающийся
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #3 : Октябрь 11, 2016, 13:06 »

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

Юра.
ssoft
Программист
*****
Offline Offline

Сообщений: 584


Просмотр профиля
« Ответ #4 : Октябрь 11, 2016, 16:32 »

В проекте используется статическая библиотека. Если правите только ее исходники, не меняя заголовки, компилятор не видит изменения в других проектах.
К сожалению ни INCLUDEPATH, ни DEPENDPATH не помогают, приходится пересобирать зависимые проекты вручную.
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #5 : Октябрь 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
Записан
deMax
Хакер
*****
Offline Offline

Сообщений: 600



Просмотр профиля
« Ответ #6 : Октябрь 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; }

Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #7 : Октябрь 19, 2016, 09:20 »

Используйте qbs, как вариант.
Записан

ArchLinux x86_64 / Win10 64 bit
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #8 : Октябрь 19, 2016, 09:40 »

В test.pro добавьте еще строку:
Код:
PRE_TARGETDEPS = $$PWD/../bin/liblib.a

Это qmake. Улыбающийся
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #9 : Октябрь 19, 2016, 09:59 »

Используйте qbs, как вариант.
Или CMake.
Записан
deMax
Хакер
*****
Offline Offline

Сообщений: 600



Просмотр профиля
« Ответ #10 : Октябрь 19, 2016, 11:20 »

В test.pro добавьте еще строку:
Код:
PRE_TARGETDEPS = $$PWD/../bin/liblib.a

Это qmake. Улыбающийся
Спасибо, помогло.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.159 секунд. Запросов: 23.