按照说明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
我该如何解决这个问题?
答案 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
运行正常。