CMake, SDL en Mac OS X, "no se encuentra -lSDLmain"

Siguiendo las instrucciones aquí, He configurado un CMakeLists.txt:

Find_Package (SDL REQUIRED)
Find_Package (SDL_image REQUIRED)

link_libraries (
     ${SDL_LIBRARY}
     ${SDLIMAGE_LIBRARY}
     SDLmain
)

Cuando se ejecuta cmake, Obtuve el siguiente error:

ld: library not found for -lSDLmain
collect2: error: ld returned 1 exit status
make[2]: *** [src/GameOfLife] Error 1

Running g++ a mano da el mismo error:

$ g++-4.7 -std=c++0x ../src/*.cpp -lSDLmain          
ld: library not found for -lSDLmain

¿Cómo puedo solucionar esto?

preguntado el 10 de marzo de 12 a las 11:03

¿Por qué el voto negativo? Esto está directamente relacionado con la programación, dentro del alcance delineado por el Preguntas Frecuentes. Es un problema que me tomó un tiempo resolverlo y no existe una solución en línea que pueda encontrar fácilmente. Auto-responder la pregunta es alentado explícitamente. Se agradecería un comentario que explique el voto negativo. -

1 Respuestas

make no sabe donde encontrar SDLmain; Necesito vincularme al directorio usando link_directory en `CMakeLists.txt.


Running

$ g++-4.7 -std=c++0x ../src/*.cpp `sdl-config --libs`

funciona bien, así que claramente tengo SDL instalado correctamente. Comprobando la salida de sdl-config --libs:

$ sdl-config --libs  
-L/opt/local/lib -lSDLmain -lSDL -Wl,-framework,Cocoa

Entonces lo que es no en el objeto CMakeLists.txt es la -L/opt/local/lib. Eso debe agregarse al CMakeLists.txt usar link_directory:

link_directories( /opt/local/lib )

Y entonces cmake funciona bien.

respondido 10 mar '12, 11:03

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.