对vc++新手来说,想把opengl圣经里的教学案例运行起来还真不是一件容易的事情,而且并没有完整的操作流程教学,这里就总结一下吧:

先安装cmake,用于生成vs的工程文件,安装过程中选中“将目录添加到系统路径中”选项。

首先创建一个空目录(openglStuff),里面创建两个空文件夹(headers 和 libs)

GLFW

  1. 根据HOWTOBUILD.txt文档说明,该书籍(opengl super bible 7th)源码需要用到glfw,并且随源码提供了一个版本的glfw源码(/extern/glfw-3.0.4)
  2. 先使用cmake编译创建vs工程:在glfw根目录下打开命令行(不选择任何文件的情况下Shift+右键,“在此处打开命令行窗口"),输入“cmake . ”(注意后面有一个点),一小会过后就会生成vs的sln工程文件。
  3. 然后用vs打开上一步生成的sln工程,分别编译debug和release版本(在上方快捷菜单栏里的“解决方案配置”部分里可以手动切换,然后菜单"生成/生成解决方案"),会生成两个glfw3.lib文件。
  4. 根据文档,把/extern/glfw-3.0.4/src/Debug下的文件改名为glfw3_d.lib,然后把两个lib文件都拷贝到libs文件夹下。
  5. (也许,未证实是否必需)还需要下载glfw编译好的dll,放在windows/system32目录下,手动编译dll的方法参考: http://www.glfw.org/docs/latest/compile.html

sb7书籍相关文件

  1. 把源码中提供的/include/文件夹下的内容全部拷贝到headers目录
  2. 把源码中提供的/lib/文件夹下的sb7_d.lib文件拷贝到libs目录

Opengl32.lib文件

在windows中搜索opengl32.lib,找到合适的版本,拷贝到libs目录

工程设置

  1. 创建一个空的c++工程
  2. 在工程上右键,属性,进入“VC++目录”,编辑“包含目录”,添加headers目录,编辑“库目录”,添加libs目录
  3. 进入“C/C++>常规”,编辑“附加包含目录”,添加headers目录
  4. 进入“C/C++>预处理器”,编辑“预处理器定义”,添加“_CRT_SECURE_NO_WARNINGS”
  5. 进入“链接器>常规”,编辑“附加库目录”,添加libs目录
  6. 进入“链接器>输入”,编辑“附加依赖项”,添加libs目录下的所有lib文件全名
  7. 创建一个新的c++文件,添加第一个示例的内容,即可正常编译、运行,显示出一个红色的窗口
  8. 如果提示“fatal error C1083: Cannot open include file: 'unistd.h': No such file or directory”,注释掉sb7.h文件中的"#include <unistd.h>"这一行即可(这是unix下用的,windows下不需要)

第一个示例内容如下:

#include "sb7.h"

class my_application :public sb7::application
{
public:
void render(double currentTime)
{
static const GLfloat red[] = { 1.0f,0.0f,0.0f,1.0f };
glClearBufferfv(GL_COLOR, , red);
}
};
DECLARE_MAIN(my_application);

使用visual studio配置和运行《opengl圣经》的第一个案例的更多相关文章

  1. 在Visual Studio 2015中运行OPENGL

    Starting an OpenGL project in VS 2015 is really easy, thanks to the NupenGL.Core nuget package. Here ...

  2. openGL学习:Visual Studio配置OpenGL

    Visual Studio配置OpenGL 分两步: (一)下载glut,并将其放置到适当的位置 (二) 进行vs2005项目属性配置 ******************************** ...

  3. NUint使用详解及Visual Studio配置

    NUint使用详解及Visual Studio配置 阅读目录 什么是单元测试? 为什么使用单元测试? NUint使用详解: 示例 属性 断言 简单测试 VS配置: External Tools Vis ...

  4. visual studio 配置OpenGL环境

    首先在网上下载一个GLUT工具包. glut.zip,大约一百多kb. 解压之后得到这么几个文件: 将glut.h复制到C:\Program Files (x86)\Microsoft Visual ...

  5. Visual Studio配置C/C++-PostgreSQL(9.6.3)开发环境(ZT)

    https://www.2cto.com/database/201707/658910.html 开发环境 Visual Studio 2017[15.2(26430.16)] PostgreSQL ...

  6. Visual Studio 继续并运行上次的成功生成,未提示直接运行上一个版本解决方案!

    Visual Studio ==>工具 ==> 选项==>项目和解决方案 ==>生成并运行_运行时,当出现生成或部署错误时_选择,提示启动

  7. visual studio 配置属性中增加自定义宏和宏值

    visual studio中有一些预先定义的宏,用于配置项目属性,如SolutionDir.我们也可以自定义类似的宏,从而在配置包含目录(include)或添加依赖项时简化配置项. 如何创建自己的宏呢 ...

  8. Visual studio 配置

    解决方案 一个解决方案的文件结构: .sln        项目目录         debug   release 其中,debug与release放置最终生成的dll或exe,项目目录下包含 头文 ...

  9. opencv3 学习一 - Visual Studio 配置

    Step 1 下载最新版的Opencv3.4.2,见图片中的网址,选择 Win Pack. Step 2 安装Opencv3 到指定目录,见图片,路径后面会用到. Step 3 把安装目录下的bin路 ...

随机推荐

  1. Java String == && equal

    [.net超级群:27921837] Java中equals和==的区别 java中的数据类型,可分为两类:1.基本数据类型,也称原始数据类型.byte,short,char,int,long,flo ...

  2. 解决172.17 或者172.18 机房环境下harbor服务器不通的问题

    直接改docker-compose.yml文件: 把原来的network选项注释掉,自定义 #networks: # harbor: # external: false networks: harbo ...

  3. Linux文件拷贝(6)

    本篇介绍文件拷贝操作,主要讲两个命令: 命令 对应英文 作用 tree[目录名] tree 以树状图列出文件目录结构 cp 源文件 目标文件 copy 复制文件或者目录 tree tree命令可以将一 ...

  4. java基础笔记(8)

    java的多线程 进程:程序的执行过程,持有内存资源 线程:是系统的最小执行单元,共享进程的资源 线程之间可以互斥.也可以同步: Thraed类: 通过一个案例来了解线程Thread类和Runnabl ...

  5. [LeetCode] 130. 被围绕的区域

    题目链接 : https://leetcode-cn.com/problems/surrounded-regions/ 题目描述: 给定一个二维的矩阵,包含 'X' 和 'O'(字母 O). 找到所有 ...

  6. Python 入门之 Python三大器 之 装饰器

    Python 入门之 Python三大器 之 装饰器 1.开放封闭原则: (1)代码扩展进行开放 ​ 任何一个程序,不可能在设计之初就已经想好了所有的功能并且未来不做任何更新和修改.所以我们必须允许代 ...

  7. bzoj4103 [Thu Summer Camp 2015]异或运算(可持久化trie)

    内存限制:512 MiB 时间限制:1000 ms 题目描述 给定长度为n的数列X={x1,x2,...,xn}和长度为m的数列Y={y1,y2,...,ym},令矩阵A中第i行第j列的值Aij=xi ...

  8. 剑指offer-二叉树的下一结点-树-python

    题目描述 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回.注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针.   思路:中序遍历,pNode节点的下一个节点根据中序 ...

  9. 03.AutoMapper 之反向映射与逆向扁平化(Reverse Mapping and Unflattening)

    https://www.jianshu.com/p/d72400b337e0 AutoMapper现在支持更丰富的反向映射支持. 假设有以下实体: public class Order { publi ...

  10. python学习笔记(5)

    第七章   模式匹配和正则表达式 1.不用正则表达式来查找文本模式 #对于这样的一个文本查找:3个数字,一个短横线,3个数字,4个端横线,然后再是4个数字,如:415-555-4242def isPh ...