2012-03-10 17 views
0

は、命令hereに続いて "-lSDLmain見つけることができない"、私はセットアップCMakeLists.txtました:CMakeのはMac OS X上のSDLは、

Find_Package (SDL REQUIRED) 
Find_Package (SDL_image REQUIRED) 

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

cmakeを実行している、私は次のエラーを取得する:

手で g++を実行
ld: library not found for -lSDLmain 
collect2: error: ld returned 1 exit status 
make[2]: *** [src/GameOfLife] Error 1 

同じエラーを与える:

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

どうすれば修正できますか?

+0

なぜdownvoteですか?これは直接的なプログラミングに関連しており、[FAQ](http://stackoverflow.com/faq)で概説されている範囲内です。解決に時間がかかり、簡単に見つけることのできるオンラインの解決策はありませんでした。自問自答は、[明示的に奨励される](http://blog.stackoverflow.com/2011/07/its-ok-to-ask-and-answer-your-own-questions/)です。 downvoteを説明するコメントをいただければ幸いです。 – simont

答えて

2

makeSDLmainはどこにありますか。 `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です。それはlink_directoryを使用してCMakeLists.txtに追加する必要があります。

link_directories(/opt/local/lib) 

そしてcmake実行罰金。