Когда я пытаюсь использовать SDL в своей программе C++, я получаю следующее:
> g++ minimal.cpp SDLMain.m
Undefined symbols:
"_main", referenced from:
start in crt1.10.5.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
Вот мой minimal.cpp:
#include
int main(int argc, char **argv) {
return 0;
}
То, что я мог собрать из http://www.libsdl.org/faq.php?action=listentries&category=7, было то, что включением SDL.h, это переименовывает мою основную функцию через некоторое макро-волшебство. Но затем SDLMain.m, как предполагается, делает вещи правом снова путем вызывания той переименованной функции. Но так или иначе которого не происходит?
Я выполняю Leopard.
Обратите внимание, что это - другой вопрос от вопроса 550455.
Решение заключалось в использовании файла SDLMain.m, включенного в SDL-devel-1.2.14-extras.dmg с домашней страницы SDL. По какой-то причине тот, который я использовал раньше, загадочным образом перестал работать. Вот моя рабочая команда компиляции:
g++ -framework SDL -framework Cocoa -I/usr/local/include/SDL/ minimal.cpp "/Library/Application Support/Developer/Shared/Xcode/Project Templates/SDL Application/SDLMain.m"