坑爹的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 ...
随机推荐
- hadoop安装配置——伪分布模式
1. 安装 这里以安装hadoop-0.20.2为例 先安装java,参考这个 去着下载hadoop 解压 2. 配置 修改环境变量 vim ~/.bashrc export HADOOP_HOME= ...
- 将web项目deploy到tomcat的方法
如果已经把整个项目发布到tomcat的webapps文件夹下,就不用再配置tomcat的server.xml了(也就是不用配置<Context>节点) 并且,你的项目的WEB-INF/li ...
- Eclipse中user library包管理
1.整理jar 2.将整理出的jar包在Eclipse中分别设置为用户librarywindow -> preferences -> java -> build path -> ...
- Socket 通信原理(Android客户端和服务器以TCP&&UDP方式互通)
转载地址:http://blog.csdn.net/mad1989/article/details/9147661 ZERO.前言 有关通信原理内容是在网上或百科整理得到,代码部分为本人所写,如果不当 ...
- 每天一个小算法(Heapsort)
#include "stdio.h" #include "stdlib.h" #define Num 10 Heap(int arr[],int i,int n ...
- < %=...%>< %#... %>< % %>< %@ %>具体意义
< %=...%>< %#... %>< % %>< %@ %>< %#... %>: 是在绑定控件DataBind()方法执行时被执行,用 ...
- MySQL之Join
参见MySQL(以5.1为例)中官方手册:MySQL官方手册-JOIN 假设有以下几个表 t1 id book 1 java 2 c++ 3 php t2 id author 2 zhang 3 wa ...
- 通过外网IP访问内网
外网服务器:外网IP1,内网IP192.168.2.156 内网服务器:内网IP192.168.2.206 通过访问外网服务器8083端口,转发到内网服务器的8083端口. 在外网服务器设置映射规则: ...
- uDig 简介
uDig是一个 open source (EPL and BSD) 桌面应用程序框架,构建在Eclipse RCP和GeoTools(一个开源的Java GIS工具包)上的桌面GIS(地理信息系统) ...
- 不同tomcat配置不同的jdk
修改Tomcat两个配置文件,tomcat/bin/catalina.sh . tomcat/bin/setclasspath.sh . 在catalina.sh文件和setclasspath.sh文 ...