前言
官方介绍
GLFW is an Open Source, multi-platform library for OpenGL, OpenGL ES and Vulkan development on the desktop
It provides a simple API for creating windows, contexts and surfaces, receiving input and events.
- GLFW是为了在多平台为OpenGL,OpenGL Es VulKan 开发提供功能
- 主要是简化 创建窗口、context、接收输入的库
- 生成过程主要为两个阶段
- 笔者建议,bin目录最好改名为打开平台的名字
d:\CodeTest\glfw-3.3.6\bin ====》 d:\CodeTest\glfw-3.3.6\vs2013
本文主要是生成vs2013 x86版本的GLFW
一、 下载
二、产生代码
- CMake使用CMakeList.txt来产生支持不同编译程序的工程文件[.sln]
-
打开CMake 设置源码路径(Where is the source code:)
路径:D:/CodeTest/glfw-3.3.6
此路径:CMakeLists.txt 此文件才是CMake关心的文件。
实际上CMake就认CMakeLists.txt,不管什么源码
-
设置输出路径(where to build the binaries)
路径: D:/CodeTest/glfw-3.3.6/bin
此路径:生成的sln + vcproject 代码都放到这里。 -
点击 “Configure”设置
说明:不要将CMAKE_INSTALL_PREFI设置为C:/Program Files(x86)/GLFW 详见本文 “五、INSTALL”
条目 | 说明 | |
---|---|---|
CMAKE_INSTALL_PREFIX | 使用vs等编译INSTALL工程后,产生的glfw3.lib文件的存放位置 | 不要使用默认C:\Program files(x86) 因为权限不足,肯定无法考入 |
CMAKE_SHARED_LIBS | √ = 编译动态库 × = 静态库 | |
CMAKE_CONFIGURATION_TYPES | 打开vs后,可以看到配置有 Debug Release RelWithDebInfo | ![]() |
GLFW_BUILD_TESTS | 是否生成Test vcproject | ![]() |
GLFW_BUILD_EXAMPLES | 是否生成 Example . vcprojets | ![]() |
这里的参数实际上都在指导如何生成 sln和vcproject文件
-
填写完配置信息后,点击Generate 去生成代码
结果:d:\CodeTest\glfw-3.3.6\bin\
解析:这个目录里主要两部分内容
1 sln文件和vcproject文件
2 编译的中间结果和最终GLFW.lib -
GLFW路径解析
目录名 | 说明 | |
---|---|---|
bin | glfw.sln 和 vsproject文件。基本没有c的源代码 | CMake软件中用户设置 |
src | glfw的主要c的源码+CMakelist文件 | 主要源代码都在这里 |
example | example源代码+CMakeList | 未来example.vcproject 也是直接使用这个目录的c文件 |
tests | tests源代码+CMakeList | 未来tests.vcproject 也是直接使用这个目录的c文件 |
- 理解目录:
1.顶级目录中的CMakeList.txt 产生sln
2.次级目录中的CMakeList.txt 产生vcproject
3.src example tests等目录为新产生的sln 和vcproject提供源码
三、打开工程
- 使用open project 打开vs2013
- 打开工程后如图,GLFW3目录下有Examples Tests glfw 等
- 使用All_Buid即可编译
- 编译Tests出现问题
解决方案: 将所有 snprintf -替换->_snprintf
编译成功
四、准备vs2019工程
1.首先要清理记录
菜单:文件File->Delete Catch
新路径:D:/codeTest/glfw-3.3.6/vs2019
2.Configuration
3.Generate 产生代码
4.Open Project
如果改动不大,都使用相同的 src tests examples源代码,
再使用不同sln 和 vcproject产生工程
注意在同一个目录里面生成两套sln,编译很困难,作者根据实践,不建议如上图中使用同一目录产生不同版本的sln 和 vcproject功能。
五、INSTALL
- 编译 INSTALL项目,把产生结果拷贝到指定目录(CMAKE_INSTALL_PREFIX)
- 不要使用C:\program files(x86),因为权限不足,无法产生