Я знаю, что это старо, но если кто-то сейчас наткнется на это.
XCode по умолчанию создает основную функцию с объявлением
int main(int argc, const char * argv[])
Пока SDL ищет функцию с объявлением
int main(int argc, char * argv[])
Обратите внимание на отсутствие const в char * argv []. Кажется, что когда SDL ищет символ * [], Xcode дает ему постоянный символ * [], и это приводит к тому, что он не может найти символ.
Мне бы очень хотелось, чтобы SDL перестал переименовывать мои функции! Должно быть лучшее решение, но эй, это пока подойдет.