Jak określić zależność pliku biblioteki dla qmake w Qt?
Mieć SomeLib.pro plik zawierający:
CONFIG += debug
TEMPLATE = lib
TARGET = SomeLib
..
Wtedy w zależnej SomeApp.pro:
..
debug:LIBS += -lSomeLib_debug
..
Jak mogę wymusić zbudowanie czegoś, jeśli dotknąłem czegoś w qmake?
6 answers
Jest brzydki, ponieważ musisz podać dokładną nazwę pliku biblioteki, ale to powinno działać:
TARGETDEPS + = libfoo.a
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-04-23 22:07:36
Qt Creator wykona pracę, jeśli klikniesz " Dodaj bibliotekę..."w menu kontekstowym projektu, które powinno zawierać bibliotekę.
Te zmienne są skonfigurowane automatycznie dla Ciebie:
- LIBS
- INCLUDEPATH
- DEPENDPATH
- PRE_TARGETDEPS
Zobacz też http://doc.qt.digia.com/qtcreator-2.1/creator-project-qmake-libraries.html
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-20 08:38:05
W odpowiedzi na komentarz Zahira, być może warto zwrócić uwagę, że podanie tej zależności w plikach qmake jest niepotrzebne, jeśli używasz bibliotek DLL, ale jest Niezbędne , Jeśli twój exe zależy od statycznej biblioteki.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-05-10 13:53:37
qmake
nie zapewnia tej zdolności.
Zamiast tego umieść swoją aplikację i lib w podkatalogach, a następnie utwórz plik Makefile w ich katalogu nadrzędnym, który wygląda mniej więcej tak:
all: FRC
cd Somelib && qmake && $(MAKE)
cd SomeApp && qmake && $(MAKE)
FRC:
Następnie zawsze uruchom make
z tego katalogu.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-04-23 12:58:20
Użyłem:
POST_TARGETDEPS += c:/open-en/lib/win32mingw/libosal_based.a
To działa, ale jest niezgrabne, ponieważ konieczne jest podanie pełnej ścieżki do biblioteki, która jest inna dla każdego systemu operacyjnego/kompilatora.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-09-15 23:13:10
Z pewnością nie jest to możliwe, mówisz o użyciu qmake do odwrotnego wyszukiwania zależności? więc co chcesz, aby zbudować aplikację B (i każdą inną aplikację zależną od biblioteki a) po dokonaniu zmiany w bibliotece a?
To trochę jak przekompilowanie wszystkich aplikacji visual basic jeśli vbrun300.dll jest aktualizowany?
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-04-23 12:47:26