GLSLDevil是调试OpenGL程序的工具。

GLSLDevil的新版本已经改名为GLSL-Debugger, github的地址在这里:http://glsl-debugger.github.io/

从github下载zip文件,解压缩, 目录结构如下:

然后按照github上的build步骤来编译。我的编译环境是Windows7, Visual Studio2013.

详细的build过程如下:

  1. 首先在解压的文件夹的同级目录常见一个空文件夹,名字为build.

  2. 安装winflexbison,下载地址如下:

https://sourceforge.net/projects/winflexbison/

下载zip文件后解压缩,文件夹的结构如下:

里面并没有安装文件,所以需要在下面的步骤中的CMAKE文件中进行一些设置。

  1. 下载GLEW:

    从这个网址下载zip文件:http://glew.sourceforge.net/

    解压后的目录结构如下:

    将这个文件夹拷贝到GLSL-Debugger\GLSLCompiler目录下:

    由于这个路径的结构有点问题,所以需要将glew-2.0.0\lib\Release\Win32中的glew32.lib拷贝到lib目录下。

    注意要从WIN32目录下拷贝,而不是X64目录下拷贝,否则后面Visual studio编译的时候会出现找不到方法的错误,原因应该是WIN32的lib和X64的lib中定义的方法不一样。

  2. 更改CMakeList.txt来指定BISON和GLEW的路径。
    1. GLSL-Debugger\GLSLCompiler\glslang\MachineIndependent\CMakeList.txt

      find_package(BISON 2.7 REQUIRED)

      find_package(FLEX REQUIRED)

      的前面加:

      list(APPEND CMAKE_PREFIX_PATH "${PROJECT_SOURCE_DIR}/GLSLCompiler/win_flex_bison-latest")

      这一步的目的是将win_flex_bison的文件夹加到CMAKE的前缀路径中,这样CMAKE在执行的时候能够在这个文件夹中搜索到flex和bison的相关文件。

    2. GLSL-Debugger\glsldb\CMakeList.txt:

      find_package(GLEW REQUIRED)

      的前面加:

      list(APPEND CMAKE_PREFIX_PATH "${PROJECT_SOURCE_DIR}/GLSLCompiler/glew-2.0.0")

      (如果第3步中没有将 glew32.lib拷贝到lib目录下,这里需要设置lib的路径才可以)

  3. 安装QT4.X

    我安装的是 QT4.8.6, 在这里下载的: https://download.qt.io/archive/qt/4.8/4.8.6/

    下载后一步步点击安装即可。

  4. 下载mhook。 GLSL-Debugger文件夹下已经有了一个空的文件夹,需要通过git或者svn下载到这个文件夹。下载网址为:https://github.com/SirAnthony/mhook

  5. 官网上说要下载freeglut. 我下载下来了,(下载地址: http://www.transmissionzero.co.uk/software/freeglut-devel/ ),解压后文件夹结构如下:

    好像实际并没有用,忘了。好像是因为我配置了glew就不用这个了。

  6. 然后按照GLSL-Debugger网站上的步骤执行如下操作
    1. 用管理员身份打开Developer Command Prompt for VS2013.
    2. Cd到build目录。
    3. 执行 cmake ../GLSL-Debugger。

    上述步骤完成后,会在build文件夹下面产生一个Visual studio的解决方案,名字为glsldb.sln.

  7. 用管理员身份打开解决glsldb.sln.

    然后点击Rebuild solution, 就会在build\bin\Debug中出现一些可执行文件,其中的glsldb.exe就是我们需要的GLSL Debugger的程序。

    当然,在编译的时候可能遇到问题。我当时遇到了如下的问题:

    1. Glsldb 项目编译报错,提示方法没有声明,手动指定了glew32.lib的路径后解决。

      (重要:这里需要注意的是,如果要改, Debug和Release的配置都要改,改了Debug, Release的配置不会自动改。这样编译出来的应用程序可能会有问题。)

    2. 编译后打开glsldb.exe, 会提示QTGLSLT4.dll找不到,将QT的路径加到环境变量里就解决了。

    3. 提示找不到glew32.exe, 将glew的bin目录加到环境变量里就解决了。

  8. 所有问题都解决后,打开build\bin\Debug文件夹

    点击glsldb.exe.

    大功告成!

    (如果Debug配置下编译出来的程序用起来有问题,可以试试用Release配置再编译一下,用Release版本的程序,可能会好用了。)

编译GSLSDevil的全过程相关推荐

  1. 以Linux系统上的gcc为例,解密C语言编译背后的全过程!

    在这个互联网时代,很多人都选择了计算机专业,而只要是计算机专业的小伙伴,可能都会学C语言,但是大家是否都清楚C语言编译的完整过程呢,今天我就带着大家一起来做个解密吧. C语言相对于汇编语言是一种高级语 ...

  2. C语言编译执行的全过程

    编译,编译程序读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,再由汇编程序转换为机器语言,并且按照操作系统对可执行文件格式的要求链接生成可执行程序. C源程序头 ...

  3. 64位环境编译DiskSim 4.0

    DiskSim没有64位版本,即使侥幸编译成功,运行时也会出现段错误.因此需要对源码进行一些修改,才能在64位环境使用,下文总结了在Ubuntu 64bit上编译DiskSim的全过程. 1.安装bi ...

  4. 图解命令行手动编译构建一个win32汇编程序

    首先安装masm32 V11.0:安装完后出现下列对话框: 图没截好:下面图的 k. 是 link. :ktopPath是DesktopPath: 此段代码的含义是用WScript创建了一个快捷方式, ...

  5. fastdfs windows部署_Go在windows下编译Linux可执行文件

    欢迎关注我的头条号:Wooola,专注于Java.Golang.微服务架构,致力于每天分享原创文章.快乐编码和开源技术. 前言 最近楼主做了一个滑块验证码登录功能,但有个问题,悲观估计一天大约会产生两 ...

  6. Windows下编译WebRTC

    前言 随着新冠疫情的影响,这两年音视频的需求呈爆发式增长.在音视频领域中,WebRTC可以说是一个绕不开宝库,包括了音视频采集.编解码.传输.渲染的全过程.本文主要记录下在Windows平台上编译We ...

  7. 使用容器编译Linux内核并启动运行-续

    本文的主要目的是基于Docker构建Linux内核开发环境.在上文中也提及到,我们需要安装开发套件,包括vim,zsh.这些都是Linux开发利器.本文将重点描述在Docker中如何构建这些环境. 网 ...

  8. CentOS7下源码编译安装MySQL5.6.4

    CentOS7下源码编译安装MySQL5.6.4 写这篇博客的主要原因是:请看上一篇博客:CentOS7下更改MySQL5.6.4默认的数据存储位置.对,当初通过rpm安装的mysql5.6.4,一切 ...

  9. C笔记(2014-12备份)

    Video1: 1-编译器对待全局变量和局部变量的差别.全局变量分配空间是在数据区,局部变量分配在代码区. (比如局部变量 int lo_var = 2;后面的 = 2;是赋值语句,被编译器转化成机器 ...

最新文章

  1. HDU 1501 Zipper
  2. 【 MATLAB 】信号处理工具箱之 dct 简介及案例分析
  3. 联想小新air13pro重装系统_联想 小新Air 13 ProU盘装系统win7教程
  4. 量子计算机神器,量子计算技术再获神器 科学家开发出新的成像技术
  5. 神经网络入门(最通俗的理解神经网络)
  6. 融 360、中邮消费金融、作业帮分享数据分析产品选型心得
  7. 摘要注释_论文摘要怎么写,小编来帮你
  8. python 多条件判断 生成新列_pandas DataFrame 根据多列的值做判断,生成新的列值
  9. 使用DataGridView数据窗口控件,构建用户快速输入体验
  10. 第一篇博客,写在颓废之时
  11. chrome中Google插件导出导入
  12. 16 PP配置-生产计划-主数据-定义MRP区域
  13. 8个超好用的Python内置函数,提升效率必备
  14. 笨办法学 Python · 续 练习 1:流程
  15. 面试官:Spring创建好的单例对象存在线程安全问题吗?
  16. hdu 1106 字符串处理
  17. Java基础(五)——泛型
  18. spring mvc入门案例
  19. 百奥虫草:科学养生健康梦想航天城里笑声朗
  20. Atom - 介绍和使用方法(好用的文本编辑器,代码提示高亮、Markdown)

热门文章

  1. Qt 学习之路 2(79):QML 组件
  2. 构造函数和析构函数的简单说明
  3. c/c++对象模型大总结:第5-8章、数据成员的存取与布局
  4. 树莓派安装python模块_树莓派引脚编号、pypi说明和安装
  5. hdu4846 最大子正方形(dp)
  6. hdu 1867 求两个串的和最小 ,KMP
  7. hdu3338 最大流
  8. 【Linux 内核】进程管理 ( 内核线程概念 | 内核线程、普通进程、用户线程 | 内核线程与普通进程区别 | 内核线程主要用途 | 内核线程创建函数 kernel_thread 源码 )
  9. 【数字信号处理】傅里叶变换性质 ( 序列傅里叶变换共轭对称性质 | 推论 )
  10. 【数字信号处理】周期序列 ( 周期序列示例 3 | 判断序列是否是周期序列 )