Нужна помощь в понимании макросов сообщений препроцессора в XCode - PullRequest
1 голос
/ 18 июля 2011

У меня не было необходимости использовать макросы препроцессора раньше, и я наткнулся на этот фрагмент кода в Интернете:

#ifndef LITE_VERSION 
    #ifndef FULL_VERSION
        #error
    #endif 
#endif

Цель этого - предупредить, если не объявлен LITE или FULL. Я удалил это в своем файле Prefix.pch и получил предупреждение с оператором #error.

Я попытался изменить ошибку на:

#pragma message("some text")

И хотя это скомпилируется, текст не отображается (что я вижу).

Я еще не объявил LITE или FULL, поэтому мне интересно, почему это не работает.

Ответы [ 2 ]

4 голосов
/ 18 июля 2011

Это должно быть:

#pragma message "some text"

Или вы можете использовать это, если предпочитаете:

#pragma message ("some text")

См. http://gcc.gnu.org/onlinedocs/gcc/Diagnostic-Pragmas.html

Обычно я использую немного другой подход:

#if defined(LITE_VERSION)
   ...
#elseif defined(FULL_VERSION)
   ...
#else
#error "Must define LITE_VERSION or FULL_VERSION"
#end
1 голос
/ 18 июля 2011

Должно работать с ошибкой, как у вас раньше.Просто добавьте сообщение и постройте

#ifndef LITE_VERSION
    #ifndef FULL_VERSION
        #error "Neither Lite or Full version has been defined"
    #endif
#endif
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...