Включить ошибки, не показанные в xCode

Недавно я начал решать проблемы с онлайн-судьями, например, с UVA Online Judge. Я пытаюсь решить эти проблемы с C ++ и пишу свой код с помощью xCode IDE.

Однако, когда я использую некоторые функции C, такие как printf или scanf, в моем коде xCode не жалуется, и все работает нормально, однако, когда я передаю свой код судье, он компилируется с GNU C ++ 4.5.3 и выдает ошибку компиляции. Проблема в том, что я должен включить заголовок cstdio.

Немного досадно, что xCode не предупреждает об этой маленькой ошибке. Можно ли как-нибудь включить эти ошибки? Поэтому, когда я использую функцию, которая требует заголовок, он выдает предупреждение или ошибку?

Спасибо!

0

Решение

Проблема вызвана LLVM набор заголовочных файлов компилятора. <iostream> включает в себя <ios> который включает в себя <cstdio>, что приведет к объявлению printf присутствовать.

Если вы компилируете код cpp, используя флаг -std=gnu++0x, под g++ в Linux он успешно компилируется.

Я не думаю, что есть опция, которая вызовет ту же ошибку в MacOS X, если вы не установите полную копию собственно gcc, включая заголовки gcc, так как заголовок неявно включен в <ios> заголовок для LLVM

В этом случае вы должны были сделать #include <cstdio> чтобы гарантировать, что функция была объявлена, и это работало бы также на компиляторе gnu gcc.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]