Несколько вопросов с QtCreator - PullRequest
1 голос
/ 26 июля 2011

Я работаю над проектом, который должен иметь графический интерфейс, написанный на Qt. Я думаю об использовании QtCreator в качестве среды разработки, но есть некоторые проблемы, с которыми я сталкиваюсь. Проект должен иметь файл dll, который не должен зависеть от какой-либо библиотеки / модуля qt, он должен использовать только winapi и должен быть скомпилирован как с x86, так и с x64. Итак, мои вопросы:

  • Можно ли использовать QtCreator для компиляции DLL, которая не имеет никакой зависимости от модулей qt. Если да, то как?
  • Можно ли использовать MinGW x86 и x64 для компиляции одного проекта? Если так, как я могу указать, какой компилятор использовать?

Это мой первый проект с Qt, и я не гуру C ++, поэтому, пожалуйста, опишите детали как можно лучше :-) Ваша помощь очень ценится.

UPDATE


Хорошо, я попытался скомпилировать проект, как предложил Берк, но у меня все еще есть проблема. Вывод зависит от LIBGCC_S_DW2-1.DLL и MSVCRT.DLL. Можно ли удалить зависимость от LIBGCC_S_DW2-1.DLL и связать MSVCRT.DLL внутри моего exe / dll (как MS VC делает).

1 Ответ

1 голос
/ 26 июля 2011

Вы можете использовать Qt Creator в качестве чистой C ++ IDE.Он поддерживает универсальный проект (проект qtcreator), cmake и qmake.

  • Используя универсальный проект, вы должны определить все ваши скрипты make.Я не рекомендую это.
  • Используя cmake, вы можете делать много вещей, как я слышал, но у меня нет никакого опыта в этом.
  • Используя qmake, ваш проект зависит от инструмента qmake.Но ваше приложение не должно зависеть от какой-либо библиотеки qt.Для этого вам необходимо добавить флаг CONFIG -= qt в файл проекта qmake.

Я рекомендую подход qmake.Вы получите лучший опыт работы с проектом на основе qmake на Qt Creator.

Вы можете сделать это через интерфейс Qt Creator.Сначала нужно определить оба компилятора.

РЕДАКТИРОВАТЬ:

Как я могу видеть эти зависимости, ваш qmake скомпилирован с помощью mingw.Это зависимости от Mingw.Таким образом, вы не можете избежать использования LIBGCC_S_DW2-1.DLL с помощью mingw.Все зависимые от Qt dll названы как Qt * .dll.Таким образом, ваша библиотека не связана ни с какой библиотекой Qt.

Вам необходимо использовать компилятор Microsoft Visual C ++.

Для проектов на основе qmake Qt Creator определяет компилятор, информацию о компоновщике из обнаруженного каталога Qt.Если ваша версия Qt скомпилирована с помощью mingw, она также использует mingw для вашего проекта.Если вам нужно скомпилировать с другим компилятором, у вас есть 2 варианта:

  • Компилировать Qt с другим предпочтительным компилятором.(Это может занять несколько часов!)
  • Создайте новую конфигурацию сборки с информацией вашего предпочитаемого компилятора.

Первый необходим для проектов на основе Qt.Если вам тоже нужно скомпилировать части на основе Qt.Я думаю, что вы должны скомпилировать Qt с MSVC Compiler (-mkspec win32-msvc20xx).Затем вы можете добавить новый каталог компилятора в Qt Versions (Options-> Qt) и использовать его.Это просто.

Но если вы не используете какие-либо части Qt.Компиляция Qt не является хорошим выбором.Создайте новую конфигурацию сборки для вашего проекта в Qt Creator и установите / переопределите некоторые переменные.(Вам нужно переопределить переключатель команд спецификации qmake на win32-msvc20xx, затем вам нужно добавить путь компилятора MSVC к переменным среды. Также вам нужно переопределить команду make для всех шагов сборки на nmake или jom)

As youсказал, что графический интерфейс вашего проекта написан на Qt.Первый подход будет лучше для вас.

...