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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: CONSOLE or not ;)  (Прочитано 4606 раз)
Вячеслав
Гость
« : Октябрь 10, 2006, 18:12 »

Собственно вопрос
кусок proшки
Код:
QT = core
CONFIG -= app_bundle
CONFIG += console

Соответственно прога собираеться под консоль ... А во время компиляции можно высянить что собираемся под консоль или ой ? Изучение mkspecs\* ничего не дало ... Или плохо искал ?

PS QT 4.1.4
Записан
Alexei
Гость
« Ответ #1 : Октябрь 10, 2006, 18:53 »

Можно. Например, для MSVC устанавливается /SUBSYSTEM:CONSOLE
Для nix, скорее всего, тоже что-нить такое есть. В крайнем случае в файл .pro можно добавить свой define
Записан
Вячеслав
Гость
« Ответ #2 : Октябрь 10, 2006, 18:55 »

Цитата: "Alexei"
Можно. Например, для MSVC устанавливается /SUBSYSTEM:CONSOLE
Для nix, скорее всего, тоже что-нить такое есть. В крайнем случае в файл .pro можно добавить свой define

Это линкеру скармливаеться .... А хотелось какой-нибудь #define найти Грустный Чтоб своего не городить ...
Записан
Steven_Orko
Гость
« Ответ #3 : Октябрь 10, 2006, 23:09 »

Ты не написал, какой версией КуТе пользуешься.
Так что вот тебе общий совет.

В про-файле ты можешь определить, содержит ли переменная CONFIG - console. Для этого есть специальная функция, которая используется только в файле проекта - contains. Вот ее некоторый пример из Assistant:

Код:
  contains( drivers, network ) {
      # drivers contains 'network'
      message( "Configuring for network build..." )
      HEADERS += network.h
      SOURCES += network.cpp
  }


Так что ты можешь таким же образом ее использовать для уже упоминавшейся проверки:

Код:
  contains( CONFIG, console ) {
      # CONFIG contains 'console'
      message( "Configuring for console build..." )
      DEFINES +=  CURRENT_BUILD_FOR_CONSOLE
  }


По поводу переменной:
DEFINES
qmake adds the values of this variable as compiler C preprocessor macros (-D option).
For example:

 DEFINES += USE_MY_STUFF QT_DLL

Ну, а делее сам уже знаешь:
Код:
#ifndef CURRENT_BUILD_FOR_CONSOLE 
...
#else
или
Код:
#ifdef CURRENT_BUILD_FOR_CONSOLE  
...
#else


Сам через файл проекта не проверял , но через ключи компилеру это точно работает. А судя по хелпу в Асистенте - это то же самое.
Записан
Вячеслав
Гость
« Ответ #4 : Октябрь 11, 2006, 00:00 »

Цитата: "Steven_Orko"
Ты не написал, какой версией КуТе пользуешься.

Грустный Последняя строка мессаги .... 4.1.4
За совет - бальшой спасиб ...
я пока  feature поправил Подмигивающий Может кулхацкерство - но работает ....
Записан
Dendy
Гость
« Ответ #5 : Октябрь 11, 2006, 03:19 »

В Qt4 синтаксис для проферки конфигурации ещё проще:

Код:
console {
    # CONFIG contains 'console'
    message( "Configuring for console build..." )
    DEFINES +=  CURRENT_BUILD_FOR_CONSOLE
}


Ентая запись работает только для содерживого CONFIG. Сам постоянно пользуюсь.

Веселый
Записан
Steven_Orko
Гость
« Ответ #6 : Октябрь 11, 2006, 19:38 »

Цитата: "Вячеслав"
Цитата: "Steven_Orko"
Ты не написал, какой версией КуТе пользуешься.

Грустный Последняя строка мессаги .... 4.1.4


Что-то у меня с внимательностью под вечер в последнее время стало ((((
Рад, что помогло )))
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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