CMake,Mac OS X上的SDL,“找不到-lSDLmain”

时间:2012-03-10 11:28:22

标签: cmake sdl

按照说明here,我设置了CMakeLists.txt

Find_Package (SDL REQUIRED)
Find_Package (SDL_image REQUIRED)

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

运行cmake时,出现以下错误:

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

手动运行g++会产生同样的错误:

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

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

make不知道在哪里找到SDLmain;我需要使用`CMakeLists.txt中的link_directory链接到该目录。


运行

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

工作正常,所以我显然已经正确安装了SDL。检查sdl-config --libs的输出:

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

CMakeLists.txt的内容是-L/opt/local/lib。应使用CMakeLists.txt

将其添加到link_directory
link_directories( /opt/local/lib )

然后cmake运行正常。