Запуск старой сборки игры в последней версии Xcode 4 создает конфликты с функцией C в stdio.h - PullRequest
4 голосов
/ 28 июля 2011

У меня есть двухлетний игровой код, который был полностью написан на cpp в xcode (не obj C). Теперь мне нужно запустить эту игру в последней версии XCode 4. Игра отлично работает с XCode 3.2.5. Но когда я построил игру с Xcode4, она показывает следующую ошибку.

GCC 4.2 Error: Declaration of C function 'int printf(int, const char*, ...)' conflicts with in /Developer/Xcode4/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk/usr/include/stdio.h

The red mark appear in line number 446 in stdio.h

Может кто-нибудь предложить мне, что здесь происходит? Заранее спасибо. Любые предложения будут очень заметны.

Ответы [ 2 ]

0 голосов
/ 03 августа 2011

Когда я комментировал это определение строки в одном из моих файлов определения типа:

#define dprintf printf

Код игры собран успешно. Проблема заключалась в том, что printf также был определен как dprintf, а в stcode.h Xcode4 есть определение для dprintf. Таким образом, он получил конфликт, тогда как он хорошо работал с предыдущей версией Xcode 3.2.5. Я предполагаю, что есть некоторые изменения и в файлах библиотеки Xcode.

Спасибо всем, кто пытался помочь мне с этим вопросом !!

0 голосов
/ 28 июля 2011

Я не понимаю, написан ли ваш код на C ++ (вы упоминаете cpp в своем вопросе) или на C (как указано в теге вашего вопроса).

В любом случае, прототип официального printf() не содержит int в качестве первого аргумента, поэтому у Xcode4 есть веские причины для жалоб.

...