Me tomó un tiempo darme cuenta de esto, solo que ya estaba usando SDL y estaba pasando de C a C++ en Lion. No es sólo el makefile que es el tema aquí, es probable que el archivo de origen, así ...
Descargar SDL- versión .tar.gz
extraer y ejecutar en el indicador
./configure --prefix=/home/user/SDL && make && make install
Suponiendo que todo llegó a construir, ahora se puede utilizar la SDL-config para construir su fuente mediante la ejecución:
g++ Main.cpp -o Main `/home/user/SDL/sdl-config --cflags --libs` \
-framework OpenGL -framework Cocoa
que es lo mismo como
g++ Main.cpp -o Main -I/home/user/SDL/include \
-L/home/user/SDL/lib -lSDLmain -lSDL -framework OpenGL -framework Cocoa
Ahora la clave aquí es que está utilizando C++ ... SDL para las macros para reemplazar correctamente el principal, es necesario evitar que el compilador de C++ de usted mangling llamada a la función principal. Para ello declaran que su principal como la siguiente:
extern "C" int main(int argc, char ** argv)
{
}
Si no se incluye el extern "C" cosas, C++ va a cambiar el nombre de su función principal y SDL no será capaz de forma automática Encuéntralo. Si no utiliza la firma de función int main (int argc, char ** argv), C++ se quejará de que no coinciden los tipos ... por lo que debe hacerlo al pie de la letra. (Si se utiliza GCC, que se excluya la extern "C" porción)
Chenz
+1 Esto realmente ayudó después de horas de frustración. Obtuve un programa SDL simple para compilar con g ++ - 4.8. – mcheema