Название: Переменные среды и MSVS Отправлено: silart от Ноябрь 15, 2010, 19:19 Добрый день!
Qt собираю MSVS 2008 в виде двух версий: static и shared. В итоге у меня получается 2 папки (два значения QTDIR): в одной лежит static версия qt, в другой - shared. Со студией я использую Visual Studio Add-in, который позволяет выбрать нужную версию Qt из нескольких имеющихся. Как работает этот addin? Очевидно, он задает в проекте значение переменной QTDIR. Внимание, вопрос! :) Каким образом можно вручную задать QTDIR для конкретного проекта? Для чего все это нужно. Дело в том, что я решил сделать библиотеку, которая будет содержать часто употребимые функции, классы, виджеты. Библиотека эта - static library. И все бы хорошо, но когда у тебя один проект собирается с библиотеками qt версии static, а другой - с библиотеками shared, возникает куча warning'ов вида: Код: 1>QMiniLibsd.lib(axdoc.obj) : warning LNK4217: локально определенный символ ??6QTextStream@@QAEAAV0@ABVQString@@@Z (public: class QTextStream & __thiscall QTextStream::operator<<(class QString const &)) импортирован в функцию "void __cdecl ml::qt::CreateDocumentation(class QString const &,class QString const &)" (?CreateDocumentation@qt@ml@@YAXABVQString@@0@Z) Моя библиотека не использует lib-файлы Qt, эти файлы задает проект. Я хочу задать QTDIR для каждой конфигурации проекта: (debug, release, static_debug, static_release), но это не получается сделать, addin задает его на весь проект. Может быть эту проблему можно решить и по-другому? Название: Re: Переменные среды и MSVS Отправлено: Aleksei от Ноябрь 16, 2010, 09:55 Предлагаю такое решение. Запускаешь Command Prompt. В моем случае, например, это Windows SDK 7.1 Command Prompt
>set PATH="path/to/qt/static/bin;%PATH%" >set QTDIR=path/to/qt/static >qmake project_static.pro (для создания vcproj: qmake -tp vc project_static.pro) >nmake (если нужно собрать проект сразу же) Закрываешь Command Prompt и опять открываешь: >set PATH="path/to/qt/shared/bin;%PATH%" >set QTDIR=path/to/qt/shared >qmake -tp vc project_shared.pro (для создания vcproj: qmake -tp vc project_shared.pro) >nmake (если нужно собрать проект сразу же) В студии работаешь только с каким-нибудь одним проектом. Либо, во всех местах vcproj-файлах вручную заменяешь $(QTDIR) на соответствующие пути. Название: Re: Переменные среды и MSVS Отправлено: silart от Ноябрь 17, 2010, 12:23 Вышел из положения следующим образом: создал в одном солюшене два проекта (static и shared). Причем файлы у обоих проектов одни и те же. Теперь для каждого проекта задаю свою версию Qt, и все собирается! :)
Aleksei, конечно можно все собирать из коммандной строки, но только не на данном этапе. В библиотеку постоянно добавляются новые классы, и собирать ее из IDE удобнее, чем из командной строки. |