QMake - Найти имена библиотек на основе набора / цели, а также типа сборки - PullRequest
0 голосов
/ 30 апреля 2019

Я пытаюсь создать ссылку на библиотеки, которые находятся в одном каталоге, и использовать следующее соглашение об именах:

libFoo64.a           # 64-bit release
libFoo32.a           # 32-bit release
libFood64.a          # 64-bit debug
libFood32.a          # 32-bit debug

Что я могу поместить в файл QMake .pro, чтобы подходящая библиотека быланайдено для каждой сборки?

Я использую QtCreator 4.9.0 (сборка MSYS2) с включенными комплектами по умолчанию:

  • Рабочий стол Qt MinGW-w64 32-bit (MSYS2)
  • Настольный Qt MinGW-w64 64-битный (MSYS2)

и для 32-битной отладочной сборки я выберу 32-битный комплект, а затем конфигурацию выпуска под этим и т. Д.

Я видел этот вопрос , который указывает, как установить различные параметры QMake для Отладки по сравнению с Выпуском, но я не уверен, как его расширить, чтобы также использовать различные параметры в зависимости от того, какой Kit находится виспользовать.

1 Ответ

0 голосов
/ 01 мая 2019

Исходя из этого вопроса Я успешно достиг цели с помощью следующего кода в файле .pro:

contains(QT_ARCH, i386) {
    CONFIG(debug, debug|release) {
        message("32-bit debug")
        LIBS += -lFooBard32 -lFooBazd32 -lFooQuxd32 -lFooCorged32 -lFooGraultd32
    }else {
        message("32-bit release")
        LIBS += -lFooBar32 -lFooBaz32 -lFooQux32 -lFooCorge32 -lFooGrault32
    }
}else {
    CONFIG(debug, debug|release) {
        message("64-bit debug")
        LIBS += -lFooBard64 -lFooBazd64 -lFooQuxd64 -lFooCorged64 -lFooGraultd64
    }else {
        message("64-bit release")
        LIBS += -lFooBar64 -lFooBaz64 -lFooQux64 -lFooCorge64 -lFooGrault64
    }
}

, который работает, хотя он не особенно хорош.

Мне также пришлось изменить конфигурацию моего набора так, чтобы 32-битный компилятор включал 32-битный QT (хотя я работаю не с QT-приложением, я просто использую QtCreator, потому что мне нравится IDE, и я этого не делалранее был установлен даже 32-битный QT).Кажется, переменная QT_ARCH основана на «версии Qt», настроенной в наборе, а не на фактическом компиляторе, выбранном в наборе.

...