如何设置CMake命令指定依赖包路径?GLFW3库查找失败求助
解决CMake指定GLFW3路径时的库缺失问题
你遇到的报错是因为GLFW3_DIR变量指向的路径不符合CMake的查找规则:这个变量需要指向GLFW编译后生成的CMake配置文件目录,而非GLFW的源码根目录。下面给出两种可行的解决方法:
方法一:先编译安装GLFW,再指定安装路径
- 先编译并安装GLFW源码:
cd /Users/aaronlee/workspaces/cpp/LearnOpenGL-master/glfw-3.3.8 mkdir build && cd build cmake .. -DCMAKE_INSTALL_PREFIX=/path/to/your/glfw/install make install - 在你的项目中执行CMake时,指定安装后生成的配置文件路径:
cmake -DGLFW3_DIR=/path/to/your/glfw/install/lib/cmake/glfw3 -G xcode ..
方法二:直接指定头文件和库文件路径(无需安装)
如果不想安装GLFW,可以跳过CMake配置文件查找,直接手动指定头文件目录和编译好的库文件:
cmake -DGLFW3_INCLUDE_DIR=/Users/aaronlee/workspaces/cpp/LearnOpenGL-master/glfw-3.3.8/include \ -DGLFW3_LIBRARY=/Users/aaronlee/workspaces/cpp/LearnOpenGL-master/glfw-3.3.8/build/src/libglfw3.a \ -G xcode ..
注意:GLFW3_LIBRARY要替换为你实际编译生成的库文件路径,静态库是.a,动态库是.dylib,根据你的编译结果选择。
补充说明
- 对于使用CMake构建的第三方库,
XXX_DIR变量的作用是让CMake找到XXXConfig.cmake或XXX-config.cmake配置文件,这类文件一般在编译后的build目录或安装后的lib/cmake/XXX目录下。 - 如果第三方库没有提供CMake配置文件,就需要手动指定
XXX_INCLUDE_DIR(头文件路径)和XXX_LIBRARY(库文件路径)这两个变量来完成依赖查找。
内容的提问来源于stack exchange,提问作者Aaron Lee
相关产品推荐
相关产品推荐

