Opengl 如何将库添加到CmakeList?

Opengl 如何将库添加到CmakeList?,opengl,c++,linux,glew,Opengl,C++,Linux,Glew,在到处搜索之后,我找不到任何东西或任何人来帮助我找到如何将GLEW和SDL2库添加到我的CMakeLists.txt。我使用的是Ubuntu 14.04 LTS,我安装了以下库 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++中编译 g

在到处搜索之后,我找不到任何东西或任何人来帮助我找到如何将GLEWSDL2库添加到我的CMakeLists.txt。我使用的是Ubuntu 14.04 LTS,我安装了以下库

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++中编译

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

现在我需要切换到CMake编译器,我不知道如何将库GL、GLEW和SDL2添加到CMakeLists.txt。

包含库的方式取决于几件事。有些软件包(如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 Persson所述。

关于这个主题的内容可能重复,说明尽可能清楚。我应该用什么来替换executablename?SDL-2.h?我尝试的东西都不管用?维基也帮不了我多少忙。我知道C++,但我不知道如何用库编译CMake。可执行名称是您最终构建的程序的名称。例如,如果您正在编译一个名为“mygame”的程序,它将是“mygame”。首先必须使用add_executable()函数定义可执行文件。例如,您的可能是add_可执行文件(mygame display.cpp shader.cpp),有时简单的示例是向您展示某些内容的最佳方式。看看链接:我的一个简单的单源程序使用了CMake。对于复杂示例,另一个很好的来源是查看KDE项目的源代码,现在我有了SDL2,但对于Glew和GL,它似乎不起作用。我有行
pkg_check_modules(GL REQUIRED GL)
pkg_check_modules(GLEW REQUIRED GLEW)
GLEW没有pkgconfig,但cmake有一个
FindGLEW
模块。您需要做的就是
include(FindGLEW)
,它将设置
${GLEW_LIBRARIES}
${GLEW_include_DIRS}
变量