2014-12-31 68 views
0

到處搜尋後,我找不到任何東西或任何人來幫助我弄清楚如何GL GLEWSDL2庫添加到我的的CMakeLists.txt。我使用的Ubuntu 14.04 LTS和我一起如何將庫添加到CMakeLists?

sudo apt-get install libsdl2-dev #for SDL-2 
sudo apt-get install libgl-dev  #for GL 
sudo apt-get install libglew-dev #for GLEW 

這一切都很好工作安裝以下庫,我能夠在克至++編譯與此條命令

g++ ./main.cpp ./display.h ./display.cpp ./shader.cpp ./shader.h -l SDL2 -l GL -l GLEW 

現在我需要切換到CMake編譯器,我不知道如何將庫GL,GLEW和SDL2添加到CMakeLists.txt。

+0

[與CMake鏈接反對GLEW](http://stackoverflow.com/questions/13958733/linking-against-glew-with-cmake) – IdeaHat

+1

有[在官方文檔中的整個維基條目](http ://www.cmake.org/Wiki/CMake:How_To_Find_Libraries)關於此主題,說明儘可能清晰。 –

回答

0

包含庫的方式取決於幾件事情。一些軟件包(如sdl2)具有pkgconfig文件,這些文件定義了這些庫並可供使用。

的CMake配有FindPkgConfig模塊,它可以給你拿。

例如:

include(FindPkgConfig) 
pkg_check_modules(SDL2 REQUIRED sdl2) 

target_link_libraries(executablename ${SDL2_LIBRARIES}) 

您也可以手動與target_link_libraries功能添加。

其他軟件包「查找」模塊,如GLEW:/usr/share/cmake-*/Modules/FindGLEW.cmake

CMake的有很多的手冊頁大文檔,並在他們的wiki作爲@Mikael佩爾鬆提到。

+0

我用什麼替換可執行文件名? SDL-2.H?沒有我嘗試的作品?維基百科也沒有幫助我很多。我知道C++,但我不知道如何用庫來編譯CMake。 –

+0

可執行文件名稱是您最終構建的程序的名稱。例如,如果你正在編譯一個名爲「mygame」的程序,它將是「mygame」。您首先必須使用add_executable()函數定義可執行文件。例如你的可能是** add_executable(mygame display.cpp shader.cpp)** –

+0

有時候簡單的例子是向你展示一些東西的最好方式。查看鏈接:[CMakeLists.txt](http://pastebin.com/qX9igTSS)查看使用CMake的一個簡單的單一源代碼程序的示例。複雜示例的另一個好的來源是查看KDE項目的源代碼[KDE](http://www.kde.org) –