我以前从未使用过cmake,但是现在由于环境原因不得不将我的Visual Studio 2013 OpenGL项目移植到其中。但是,我似乎无法弄清楚如何从文件夹将库(甚至是仅标头库,如GLM)链接到它。 我的目录层次结构是这样的:
project
|--src
|----main.cpp
|----functions.h
|----functions.cpp
|----...
|--libraries
|----GLM
|------glm (<--the include directory)
|----glew-2.0.0
|------include
|------lib
|----GLFW
|------include
|------lib-vc2013
关于如何使用系统路径和变量来安装和链接这样的库,似乎有很多建议,但是这样的解决方案对我来说是无用的,因为有必要将这些库与源文件一起提供,因为我不能期望其他计算机安装了这些库,也无法要求它们在项目目录之外安装库。我还应该提到我正在使用OS Windows 7。
编辑: 这是链接库的CMakeLists.txt文件:
cmake_minimum_required(VERSION 3.0)
ADD_EXECUTABLE( water_surface main.cpp functions.h functions.cpp)
TARGET_LINK_LIBRARIES(water_surface opengl32)
link_directories(
${CMAKE_SOURCE_DIR}/libraries/glew-2.0.0/lib/release/Win32
)
TARGET_LINK_LIBRARIES(water_surface glew32)
include_directories(
${CMAKE_SOURCE_DIR}/libraries/glew-2.0.0/include
)
link_directories(
${CMAKE_SOURCE_DIR}/libraries/GLFW/lib-vc2013
)
TARGET_LINK_LIBRARIES(water_surface glfw3)
include_directories(
${CMAKE_SOURCE_DIR}/libraries/GLFW/include
)
include_directories(
${CMAKE_SOURCE_DIR}/libraries/GLM/glm
)