Как управлять несколькими проектами в Qt Creator? - PullRequest
4 голосов
/ 17 июня 2011

У меня есть исполняемый файл, который зависит от нескольких статических библиотек, и в Visual Studio все они управляются как часть файла 1 sln, а исполняемый файл зависит от статических библиотек.

Как это можно настроить в Qt Creator? Похоже, есть 2 варианта: 1. создать несколько проектов в «сеансе» Qt Creator. Но сессия не является общей для пользователей, верно? так что я не уверен, как это будет работать? Например, есть ли файл сеанса, который создается? 2. использовать подпроекты. и сделать статические lib sub projs из exe?

Есть рекомендации? Я совершенно новичок в Qt Creator и мне нужно использовать его для порта Linux.

Спасибо!

Ответы [ 2 ]

2 голосов
/ 17 июня 2011

Чтобы получить qmake для создания хорошего .sln с подпроектами, создайте один основной .pro файл с шаблоном subdirs и установите необходимые зависимости каждого проекта от другого.

QtCreator использует qmake за кулисами для генерации make-файла и сборки из него, но вы также можете создавать файлы решения VS, запустив

qmake ../path/to/source -tp vc

Вы также можете использовать надстройку Qt Visual Studio для графического интерфейса пользователя, если процесс.


Также: чтобы убедиться, что исполняемый файл повторно связывается при каждом изменении зависимой статической библиотеки, используйте

CONFIG( debug, debug|release ) {
    LIBSUFFIX = d
    win32:LIBS += -L../staticlib1/debug
    win32:PRE_TARGETDEPS += ../staticlib1/debug/libAmbrosiad.a
} else {
    LIBSUFFIX =
    win32:LIBS += -L../staticlib1/release
    win32:PRE_TARGETDEPS += ../staticlib1/release/libAmbrosia.a
}
unix:LIBS += -L ../libAmbrosia
unix:PRE_TARGETDEPS += ../libAmbrosia/libAmbrosia$${LIBSUFFIX}.a

Поместите что-то вроде этого в файл .pro вашего исполняемого файла, отметив, что часть LIBSUFFIX полностью необязательна, но соответствует тому, как построен сам Qt, поэтому я тоже так использую. Обратите внимание на подкаталоги «release» и «debug», отсутствующие в сборках Linux / Mac. И чтобы быть полным: довольно многословное if-else условие - The Right Way (TM), чтобы отличить debug от release сборок в файлах проекта qmake. Более простые способы могут сломаться при нескольких обстоятельствах.

1 голос
/ 17 июня 2011

В Linux файлы сессий создаются в ~/.config/Nokia/qtcreator, расширение qws, но я думаю, что это не очень подходящее решение для нескольких пользователей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...