坑爹的gltools编译错误解决
搭边手游,看opengl superbible, 书中代码需要一个gltools库。作者自己提供的code google地址里gltools项目是空的,此一坑。
他的网站(www.starstonesoftware.com)关于opengl的页面打不开,此二坑。
好不容易github拖到一个,需要用到freeglut和glew。都准备就绪了,编译出错,link2001和link2019,均跟glew有关。仔细检查glew的c++选项和链接选项,glew的MT改为MD,此外保证gltools的其他选项与glew相同,编之,不通,但错误减少了,此三坑。
此时去编它的静态库,通过了。本不想理会了,无奈较劲上了,继续查。发现gltools的glbatch.h文件里,定义了GLEW_STATIC。故而我们静态版本通过了,但编动态库版本对于glew的c方式导出全部少了正确修饰符,GLEWAPI没被定义为extern __declspec(dllimport)。把该文件的GLEW_STATIC删除。仍没通过。此四坑。
然后发现这个cmake生成的gltools工程,另外几个重要的头文件没被直接添加在工程里,故而我全局查找GLEW_STATIC时漏了这几个文件,而它们全部都定义了这个宏。好在也不多,全部删除之。此五坑。
仍不通过,剩下的是opengl本身函数的链接问题,这你都没加上,太坑了吧。把opengl链接添上,动态库版本总算好了。此六坑。
然后才发现gltools本身没加dll修饰符,没导出类和函数,算我无用功了。原本就是static版本省心,此七坑。
说到底还是跟windows过不去的原因。我人很懒,因此向来不喜欢linux,矛盾的很。
都说这本书比较靠谱,我说这作者们,6,7百页的书您们都写了,还到了第五版(英文到六了吧),叫几个手下帮你做做这项目工程总可以吧。像这类书针对该都是尚不熟悉opengl甚至编程的读者,其实能有一个方便傻瓜直接跑的工程对他们很重要。估计很多人就卡在上边没心情了。
坑爹的gltools编译错误解决的更多相关文章
- xxx was built without full bitcode" 编译错误解决
xxx was built without full bitcode" 编译错误解决 iOS 打包上线 All object files and libraries for bitcode ...
- Android studio2 中的 SDK Manager的使用-------Android SDK 的安装与更新(Install missing platform(s) and sync project 编译错误解决)
最近在编写Android程序,其中有一个问题就是对旧应用的导入,此时往往你的Android SDK中并没有老版本的Android SDK, 此时往往会提示你出现错误 Install missing p ...
- glib wpa_supplicant Unix上库编译错误解决与总结
编译Linux下的库是一件痛苦的事情,这里主要阐述glib和wpa_supplicant库的编译,因各自的依赖关系,另外一些库要事先编译.glib依赖libffi和zlib,而wpa_supplica ...
- pip install leveldb 编译错误解决
centos7,python3.3 # pip-python3 install leveldb 错误: /usr/include/python3.3m/dynamic_annotations.h:47 ...
- VS C4819 编译错误解决方法
偶尔用别人的代码,出现: warning C4819: The file contains a character that cannot be represented ). Save the fil ...
- Cordova - 安装camera插件之后编译错误解决方法!
安装camera插件之后,编译出错,错误截图如下: 刚开始以为是AAPT编译导致的,尝试关闭AAPT编译选项,但是不行,认真看了一下编译出错信息,应该是缺少文件导致的,随后在对应的目录中加入了缺失的文 ...
- 〖Android〗CM10.2编译错误解决
错误1: hardware/samsung/exynos4/hal/libhdmi/SecHdmi/SecHdmiV4L2Utils.cpp: In function 'int android::hd ...
- grpc编译错误解决
berli@berli-VirtualBox:~/grpc$ make [MAKE] Generating cache.mk [C] Compiling src/core/lib/s ...
- CentOS 7 编译错误解决方法集合
解决 error: the HTTP XSLT module requires the libxml2/libxslt 错误 yum -y install libxml2 libxml2-dev yu ...
随机推荐
- swift:入门知识之简单值
1.swift中用let关键字类定义常量,用var关键字来定义变量. 2.swift语句的结尾不需要再带逗号,系统在运行程序时自动会帮你添加上 3.一个变量或常量必须与赋值时拥有相同的类型. 4.如果 ...
- HtmlHelper
HtmlHelper类 public class HtmlHelper<TModel> : HtmlHelper类 因为HtmlHelper<TModel>继承自HtmlHel ...
- .NET在EF中使用sql,用动态类吧!
.NET在EF中使用sql,用动态类吧! 前言 在.NET中使用Entity Framework能快速.方便地结合LINQ来对数据库进行一系列的增删改查操作.但是由于EF根据表达式最后生成通用的sql ...
- Effective C++条款01: 视C++为一个语言联邦
一开始C++定义为:C with Classes. 如今的C++已经是一个多重范型编程语言,可以把C++视为有四个次语言组成的联邦语言. C.C++任然以C为基础.区块.语句.预处理.内置语言类型.数 ...
- Linux实用命令
0. 基本命令 1. 压缩 解压 tar -zcvf a.tar.gz a #把a压缩成a.tar.gz tar -zxvf a.tar.gz #把a.tar.gz解压成a 2. vim小结 2.1 ...
- USACO Section 2.4: Bessie Come Home
因为题目给了边的信息,所以比较适用bell-man的方法 /* ID: yingzho1 LANG: C++ TASK: comehome */ #include <iostream> # ...
- HDU 4634 Swipe Bo 状态压缩+BFS最短路
将起始点.终点和钥匙统一编号,预处理: 1.起始点到所有钥匙+终点的最短路 2.所有钥匙之间两两的最短路 3.所有钥匙到终点的最短路 将起始点和所有钥匙四方向出发设为起点BFS一遍,求出它到任意点任意 ...
- 使用 DB Fixtures 为 Unit Test 提供基础数据,Sails + Mocha 实现。
使用 DB Fixtures 为 Unit Test 提供基础数据,Sails + Mocha 实现. 问题:Test Fixture 太分散,管理麻烦. 在做单元测试的时候,数据回滚是个比较麻烦的问 ...
- linux系统的文件和文件类型
文件 当你创建一个文件的时候,系统保存了有关该文件的全部信息,包括:• 文件的位置.• 文件类型.• 文件长度.• 哪位用户拥有该文件,哪些用户可以访问该文件.• i节点.• 文件的修改时间.• 文件 ...
- html5 移动端单页面布局
序 移动端的web网页使用的是响应式设计,但一般我们看到的网站页面都是跳转刷新得到的,比如通过点击一个menu后进入到另一个页面 今天来说下是移动端的单页面的布局.单页面就是一切操作和布局都是 ...