В pro-файле нужно указать разные настройки для debug и release конфигурации. Почитал документацию, вроде как утверждается, что нужно использовать named scopes debug и release. Я сделал небольшой тестовый проект такого вида:
TEMPLATE = app SOURCES += main.cpp message(===Run config===) debug { message(===Debug===) SOURCES += debug.cpp } release { message(===Release===) SOURCES += release.cpp }
В файлах debug.cpp и release.cpp опрделена одна и та же фунция.
Открываю проект в Qt Creator, настраиваю проект для сборки с использованием MinGW, выбираю конфигурацию Debug, запускаю сборку – в результате в консоли вижу:
Project MESSAGE: ===Run config=== Project MESSAGE: ===Debug=== Project MESSAGE: ===Release=== Project MESSAGE: ===Run config=== Project MESSAGE: ===Debug=== Project MESSAGE: ===Release=== Project MESSAGE: ===Run config=== Project MESSAGE: ===Debug=== Project MESSAGE: ===Release===
Конфигурирование выполняется три раза, причём на каждом разе включена одновременно и дебаговая и релизная конфигурации. Как следствие в проект включаются одновременно оба файла и на этапе линковки получаем сообщение об ошибке:
Src\build-qmake-test-Desktop_Qt_5_12_3_MinGW_64_bit-Debug/../qmake-test/release.cpp:4: multiple definition of `printMessage()'
Подскажите пожалуйста, в чём тут дело? Может быть я что-то делаю не так? Какой правильный способ определять релизная сейчас конфигурация или дебаговая?