如何在CMake中添加项目本地静态或动态库?

时间:2017-03-10 12:39:35

标签: c++ visual-studio-2015 cmake

我正在尝试学习OpenGL,并希望使用cmake设置我的构建环境。我将使用GLEW(OpenGL Extension Wrangler)和freeglut。然而,有一个问题......因为我是项目管理的绝对初学者"在C ++和cmake中,我很难指向静态库。我可以理解C ++代码,但对基于C ++的项目构建系统不熟悉。

我只是想简单地尝试生成Visual Studio 2015项目。我的问题是:如何将我的静态库展示给cmake。我的项目文件夹结构:

build # Folder where I would like cmake generated files to be generated in this directory.
include
|-- GL
|   |-- freeglut.h
|   |-- freeglut_ext.h
|   |-- freeglut_std.h
|   |-- glut.h
|-- glew
|   |-- eglew.h
|   |-- glew.h
|   |-- glxew.h
|   |-- wglew.h
lib
|-- freeglut.lib
|-- freeglut_static.lib
|-- glew32.lib
|-- glew32s.lib
src
|-- main.cpp
CMakeLists.txt

我的CMakeLists.txt文件如下:

cmake_minimum_required(VERSION 2.8)
project(sb7application)

find_package(OpenGL REQUIRED)
find_library(LINK_LIBS NAMES freeglut freeglut_static glew32 glew32s PATHS lib)

include_directories(include)
file(GLOB SOURCES "src/*.cpp")

add_executable(${PROJECT_NAME} ${SOURCES})
target_link_libraries(${PROJECT_NAME} ${LINK_LIBS} ${OPENGL_LIBRARY})

这里,基本上我想要的是让CMake链接lib文件夹中的静态库。但是,此cmake脚本不会将链接器输入配置添加到我的visual studio项目设置中。例如,如果我打开生成的visual studio项目并转到Properties>项目链接器并将此lib目录添加到其他库目录,并在Properties>中指定库(.lib s)。链接器>输入部分,它成功编译。否则,它会出现类似'__imp_glewInit()' cannot be found

之类的链接错误

是的,如何将此lib目录及其内容显示为要链接的静态库?如果你可以向孩子解释,并详细解释每一步,我会非常感激。

0 个答案:

没有答案