VS15 openGL 编程指南 配置库 triangle例子
最近去图书馆借了一本书《OpenGL编程指南(原书第八版)》,今天倒腾了一天才把第一个例子运行出来。
所以,给大家分享一下,希望能快速解决配置问题。
一、下载需要的库文件
首先,我们需要去该书的网站中下载相关的配置文件,书中给的是“红宝书”的官方网址:http://www.opengl-redbook.com/
但现在已经更新至第九版,里面的库不是很完整,不适宜用于此书示例。
所以我们要找一个第八版的资源:http://pan.baidu.com/s/1kVpv1MR
下载完之后,我们先把main函数做一些修改,因为,原书的代码有点不完整
int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGBA);
glutInitWindowSize(, );
glutInitContextVersion(, );
glutInitContextProfile(GLUT_CORE_PROFILE);
glutCreateWindow(argv[]); glewExperimental = GL_TRUE; //添加
if (glewInit()) {
cerr << "Unable to initialize GLEW ... exiting" << endl;
exit(EXIT_FAILURE);
}
init();
glutDisplayFunc(display);
glutMainLoop(); }
还要在工程目录下创建两个文件
triangles.frag
#version core
out vec4 fColor;
void
main()
{
fColor = vec4(0.0, 0.0, 1.0, 1.0);
}
triangles.vert
#version core
layout(location = ) in vec4 vPosition;
void
main()
{
gl_Position = vPosition;
}
二、配置相关的库
先展示一下刚刚下载的压缩文件

其中include/GL/ 下面是有9个文件的,很全。如果下载的是第九版的话那么就只有两个文件,不完整。

确定文件齐全之后,我们开始配置相关的库。
在你的项目-》属性-》


在包含目录中添加进你下载的那个文件夹中的include目录:比如我的是:D:\新建文件夹\新建文件夹\新建文件夹\新建文件夹\openGL\oglpg-8th-edition\include
在库目录中添加进你下载的那个文件夹中的lib目录:比如我的是:D:\新建文件夹\新建文件夹\新建文件夹\新建文件夹\openGL\oglpg-8th-edition\lib
然后再把下面这个设置一下:

这样在debug或rrelease编译模式下都能把libcmtd.lib这个库忽略掉
最后一点,VS2015更改了很多标准库的链接方式和宏定义,而红宝书第八版中用到的freeglut库中用到了这些标准库和宏。所以如果报_sscanf或者__iob_func是无法解析的外部符号之类的错误,你可以打开如下设置:

点开那个下拉,如果你有低于15的版本,那么选那个低版本的,如果只有15版本的话,请往下看
来自:https://blog.csdn.net/csdn1027192411/article/details/52064732 的解决方案,如下:

然后在工程的cpp文件首,插入如下代码即可
#if _MSC_VER>=1900
#include "stdio.h"
_ACRTIMP_ALT FILE* __cdecl __acrt_iob_func(unsigned);
#ifdef __cplusplus
extern "C"
#endif
FILE* __cdecl __iob_func(unsigned i) {
return __acrt_iob_func(i);
}
#endif /* _MSC_VER>=1900 */
到现在应该就可以运行了。

如果不想用提供的库,想要自己下载,也可以
这里有完整的OpenGL所需的库:https://www.cnblogs.com/zpcdbky/p/6724772.html
不过,第八版的资料里的include里面也很完整~
感谢您的阅读,生活愉快~
VS15 openGL 编程指南 配置库 triangle例子的更多相关文章
- OpenGL编程指南(第七版)
OpenGL编程指南(第七版) 转自:http://blog.csdn.net/w540982016044/article/details/21287645 在接触OpenGL中,配置显得相当麻烦,特 ...
- 编译opengl编程指南第八版示例代码通过
最近在编译opengl编程指南第八版的示例代码,如下 #include <iostream> #include "vgl.h" #include "LoadS ...
- [转]OpenGL编程指南(第9版)环境搭建--使用VS2017
1.使用CMake Configure中选择VS2017 Win64 , Finish: 点击Generate. 2.进入build目录 打开GLFW.sln , 生成解决方案. 打开vermilio ...
- OpenGl编程指南第7版(红宝书)环境配制
环境 OS:win7 旗舰版SP1 64位 编译器: VS 2013 express 的cl 软件 glut. 在这个页面https://www.opengl.org/resources/librar ...
- OpenGL编程指南第九章:纹理映射
转自://http://blog.csdn.net/longhuihu/article/details/8477614 纹理(texture)是一块矩形数据序列,存储的数据为颜色.亮度.alpha值. ...
- OpenGL编程指南(第九版) Tiangles 学习笔记
////////////////////////////////////////////////////////////////////////////// // // Triangles.cpp / ...
- opengl编程指南
第一章 opengl简单介绍 1.1 什么是opengl opengl是图形硬件的一种软件接口. 1>渲染(rendering)是计算机依据模型创建图像的过程. 2>模型(m ...
- OpenGL编程指南第版本学习笔记 --- OpenGL程序实现过程(win32 + OpenGL)
1. 先上代码 头文件glCommon.h #include <GL/glew.h> #include <GL/GL.h> #include <GL/GLU.h> ...
- 《OpenGL编程指南第七版》学习——编译时提示“error C2381: “exit” : 重定义;__declspec(noreturn) 不同”错误的解决办法
解决办法一. #if defined(_WIN32) # ifndef GLUT_BUILDING_LIBextern _CRTIMP void __cdecl exit(int); 上面是glut. ...
随机推荐
- dubbo Filter
官方说明: 调用拦截扩展 扩展说明 服务提供方和服务消费方调用过程拦截,Dubbo 本身的大多功能均基于此扩展点实现,每次远程方法执行,该拦截都会被执行,请注意对性能的影响. 约定: 用户自定义 fi ...
- R6—单变量正态性检验
方法不唯一 单变量正态检验主要的话包括以下这些 shapiro.test();#Shapiro-Wilk检验 library("nortest"); lillie.test() # ...
- 【BZOJ】2655: calc 动态规划+拉格朗日插值
[题意]一个序列$a_1,...,a_n$合法当且仅当它们都是[1,A]中的数字且互不相同,一个序列的价值定义为数字的乘积,求所有序列的价值和.n<=500,A<=10^9,n+1< ...
- 个人集群部署hadoop 2.7 + hive 2.1
环境:centos 6.6 x64 (学习用3节点) 软件:jdk 1.7 + hadoop 2.7.3 + hive 2.1.1 环境准备: 1.安装必要工具 yum -y install open ...
- 2017 ACM暑期多校联合训练 - Team 9 1008 HDU 6168 Numbers (模拟)
题目链接 Problem Description zk has n numbers a1,a2,...,an. For each (i,j) satisfying 1≤i<j≤n, zk gen ...
- 系统学习(javascript)_基础(数据类型之间的转换)
在js中数据类型转换一般分为两种,即强制类型转换和隐式类型转换(利用javascript弱变量类型转换). 强制转换: 利用js提供的函数parseInt(),parseFloat(),Number( ...
- 2015.07.15——prime素数
prime素数 1.素数也叫质数,定义是一个数只能被1和它自身整除. 素数从2开始,0,1都不是素数. 2.素数的判断(C++) 3.给定某个数,求小于这个数的所有素数 2.素数的判断(C++) bo ...
- java 多线程 Future callable
面向对象5大设计原则 1.单一职责原则 一个类只包含它相关的方法,增删改查.一个方法只包含单一的功能,增加.一个类最多包含10个方法,一个方法最多50行,一个类最多500行.重复的代码进行封装,Do ...
- bzoj 1083 繁忙的都市
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1083 题解: 在bzoj里能遇到如此如此水的题真是不容易…… 乍一看好像有点吓人,其实是一 ...
- RobotFramework安装扩展库包Selenium2Library(三)
Robot Framework扩展库包 http://robotframework.org/#libraries 一,自动化测试web端 1,pip安装SeleniumLibrary pip inst ...