После некоторых проблем с настройкой SDL я обнаружил, что SDL определяет макрос, который заменяет main:
#define main SDL_main
// And then
extern C_LINKAGE int SDL_main(int argc, char *argv[]);
Это также может привести к ошибкам компиляции, если в основной функции не определены параметры argc
и argv
.
Этот макрос вызывает у меня головную боль, как только я его вижу... Зачем SDL переопределять main? После еще нескольких поисков я обнаружил, что некоторые люди #undef main
используют его как обычно.
Вот в чем вопрос:зачем SDL переопределять main, что он делает? Есть ли побочные эффекты от его отмены?
Одна вещь, которую я заметил, это то, что SDL перенаправляет стандартный вывод и ошибки в файлы (, и я не хочу этого поведения ), и это поведение прекращается, если я отменяю определение main.