cmake - 如何将库从文件夹添加到 cmake
问题描述
我以前从未使用过 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
)
解决方案
推荐阅读
- angular - 服务器端渲染实际上不是“渲染”的服务器端?
- node.js - 有没有办法处理发送到 NodeJS 中 HTTPS 端口的 HTTP 请求
- alibaba-cloud - 阿里巴巴 ACP 关于 CDN 的问题(需要说明)
- visual-studio-code - sam cli 调试 vscode
- javascript - Leaflet Popup 未注册点击事件
- typescript - 从不同文件导入时,默认导出不会被多次调用
- angular - 如何将输入类型应用于 ng2-smart-table
- git - 首次构建时的 Jenkins Git 变更日志
- android - 如何通过 ADB Android 检查移动网络连接?
- android - 新构建类型失败并出现错误:CrashlyticsOrgIdException:无法获取 Crashlytics 组织 ID