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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QT и 32/64-bit приложения с MSVC (пара тупых вопросов)  (Прочитано 11287 раз)
vipet
Бывалый
*****
Offline Offline

Сообщений: 452


Просмотр профиля
« : Январь 15, 2007, 07:45 »

[Windows XP x64 + MSVS 2005 Pro без SP1 + QT 4.2.2 коммерч.]

По причине нерабочего gdb дебаггера в Windows XP x64, пришлось использовать MS VS 2005.

Заодно захотелось делать и 32-bit, и 64-bit приложения.
Я знаю, что в Configuration Manager для Solution устанавливается Active Solution Platform. Там можно выбирать Win32 или x64.

QT сконфигурирована как static, если это имеет значение.

Тупой вопрос #1:
Каждый раз при смене Active Solution Platform используемые либы QT будут перекомпилироваться ?
ОТВЕТ: Нет, конечно. :oops: Будут линковаться скомпилированные.

Тупой вопрос #2:
Компиляторы и линкеры от MSVC находятся в
C:\Program Files (x86)\Microsoft Visual Studio 8\VC\bin
Но также есть еще другие папки с ними:
C:\Program Files (x86)\Microsoft Visual Studio 8\VC\bin\amd64
C:\Program Files (x86)\Microsoft Visual Studio 8\VC\bin\x86_amd64

Почему нету их же для Intel x64-процессоров? Или из amd64 используется и для Intel?

(MS VS 2005 у меня без SP1, появляется ли что-нибудь (компилятор для Intel x64 напр.) после установки SP1?)

ОТВЕТ: Все нормально. cl.exe из папки amd64 будет компилить под x64 процессоры (как амд, так и интел (кроме итаниума, на который пофиг)), а название папки такое, потому что интел адаптировал 64-битную архитектуру амд. В x86_amd64 - компилятор 64-битного кода, который работает под x86/x64/Itanium.

добавлено спустя 5 часов 6 минут:

 Тупой вопрос #3:

Имеем 2 собранные разные версии QT: для x86 (путем сборки в VS2005 Command Prompt для x86) и x64 (путем сборки в VS2005 x64 Win64 Command Prompt). Каждая сборка находится в своей папке.

Установлен Qt Integrator. В Tools/Options/Qt/Builds добавлены обе сборки. Когда x86 сборка Qt выбрана по умолчанию и Active Platform установлена в Win32, то все нормально. Если же сборкой по умолчанию выбрать Qt x64, Active Platform уст-ть в x64, то линкуется все равно Qt x86, т.е. ничего не линкуется.

В путях include, lib стоит: $(QTDIR)\include, $(QTDIR)\lib, ...

Где менять значение переменной QTDIR, чтобы она указывала на папку с нужной версией Qt?

Можно, конечно, вручную проставлять пути в свойствах проекта и тогда все ок. Но хочется сделать кошерно, чтобы через QTDIR.  Крутой

ОТВЕТ: QTDIR устанавливается в Toolbox'е Properties (View->Properties Window), св-во Version. А не в диалоге настроек проекта (Project->Properties). Могли бы и в этом диалоге сделать, было бы логичнее.

Вот, сам себе ответил на всё вопросы  Веселый
Записан
Dendy
Гость
« Ответ #1 : Январь 15, 2007, 10:26 »

ОТВЕТ НА ВОПРОС 3: Фиг его знает

Я так и не нашёл, как менять значения макросов в настройках проекта. Хотя логически оно Must Be! В Еклипсе в свойствах конфигурации сборки есть такой пункт, из-за чего в путях можно использовать макросьІ. В студии - хоть убей - не нашёл.

По всей видимости Тролли тоже не нашли, так как данньІй вопрос решают через костьІли: Интегратор (по слухам, сам не юзаю) создаёт ярльІки в файловой системе, которьІе меняют запускают проект в студии с конкретньІми переменньІми окружения QTDIR.
Записан
vipet
Бывалый
*****
Offline Offline

Сообщений: 452


Просмотр профиля
« Ответ #2 : Январь 15, 2007, 11:33 »

Dendy

Может быть Project->Properties->Build Events->Pre-Build Event->Command Line ?

Я пробовал писать туда разное типа:
set QTDIR=c:\Dev\QT\422x64c
set $(QTDIR)=c:\Dev\QT\422x64c

Результат нулевой.
Записан
ElderOrb
Гость
« Ответ #3 : Январь 15, 2007, 15:48 »

Цитировать
Я так и не нашёл, как менять значения макросов в настройках проекта. Хотя логически оно Must Be!


Если имеется в вид макросы QTDIR, то его значение меняется очень несложно. Правый клик на Solution в Solution Explorer-е => Change Qt Version.
Записан
Dendy
Гость
« Ответ #4 : Январь 15, 2007, 16:13 »

В том то и дело, что ето должна бьІть настройка конкретной конфигурации проекта, а не солюшена вцелом. У меня к примеру нет етого: Change Qt Version. Технически проблем нет.

Давно знал про ету проблему студии. И только пару дней назад поставил Еклипс, сразу пошёл в настройки смотреть есть ли такая опция там - нашёл без проблем. Пора делать ноги со студии, тем более, что на С++ M$ уже забила.
Записан
Alexei
Гость
« Ответ #5 : Январь 15, 2007, 19:16 »

А почему ты решил, что M$ забила на C++?
Записан
SLiDER
Гость
« Ответ #6 : Январь 16, 2007, 01:02 »

Цитата: "Dendy"
Давно знал про ету проблему студии.


Хорошо бы, только вот, что с отладчиком делать, gdb под виндой чуть не довел меня до нервного срыва  :twisted: . С альтернативами не густо  Грустный

добавлено спустя 8 минут:

 
Цитата: "Alexei"
А почему ты решил, что M$ забила на C++?


Помоему это очевидно, хотя и не совсем так. Цель МС - "как можно меньше нэйтив кода в юзер спэйсе". Так что основной продукт для них дотНЕТ (или как он там теперьбудет обзываться). Так что все к этому и идет, медленно но верно, легко можно перечислить с пяток признаков, начиная со смерти всех С++ проектов от МС и заканчивая все более вялой поддержкой стандартов. ИМХО.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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