QtCreator без Qt
Решил я поэкспериментировать c GUI либой - Nana. Но не думал, что столько заморочек с ней будет. Очень непонятно, почему "штатный" MinGW32 7.3.0, входящий в последнюю поставку Qt не захотел компилировать либу. Ну я подумал, они там все на "пике стандартов" ... поставил MSYS, в который вошел GCC уже версии 10.1.0 - либа таки собралась.
Но потом встал вопрос компиляции тестового примера. Всеми правдами и неправдами я убил тучу времени на поиски и таки нашаманил работающий пакетный файл для сборки:
@echo off
SET PATH=C:\Tools\Msys64\mingw64\bin;%PATH%
C:\Tools\Msys64\mingw64\bin\g++.exe ^
-IC:\Projects\c++\Nana\mingw-x64\include ^
-LC:\Projects\c++\Nana\mingw-x64\lib ^
-std=c++17 ^
main.cpp -O3 -o NanaTest.exe ^
-lnana -lgdi32 -lcomdlg32 -lz -Wl,-subsystem,windows ^
-static -lpthread
strip NanaTest.exe
А вот теперь вопрос - как все это раскидать по настройкам в .pro файл для QtCreator'а?
Нужные профили комплектов MSYS в QtCreator'е создал.
Ответы (2 шт):
Например, в QBS (для MinGW) твой проект будет примерно таким:
import qbs
CppApplication {
name: "NanaTest"
cpp.distributionIncludePaths: ["C:/Projects/c++/Nana/mingw-x64/include"]
cpp.distributionLibraryPaths: ["C:/Projects/c++/Nana/mingw-x64/lib"]
cpp.cxxLanguageVersion: "c++17"
cpp.optimization: "fast"
cpp.dynamicLibraries: ["nana", "gdi32", "comdlg32", "z", "pthread"]
cpp.linkerFlags: ["-subsystem", "windows"]
cpp.cxxFlags: ["-static"]
files: ["main.cpp"]
}
Сделать как-то так:
...
Properties {
condition: qbs.architecture === "x86"
cpp.distributionIncludePaths: ["C:/path/to/32/bit/include"]
cpp.distributionLibraryPaths: ["C:/path/to/32/bit/lib"]
}
...
Properties {
condition: qbs.architecture === "x86_64"
cpp.distributionIncludePaths: ["C:/path/to/64/bit/include"]
cpp.distributionLibraryPaths: ["C:/path/to/64/bit/lib"]
}
...