?
GLSLDevil是调试OpenGL程序的工具。
GLSLDevil的新版本已经改名为GLSL-Debugger, github的地址在这里:http://glsl-debugger.github.io/
从github下载zip文件,解压缩, 目录结构如下:
然后按照github上的build步骤来编译。我的编译环境是Windows7, Visual Studio2013.
详细的build过程如下:
- 首先在解压的文件夹的同级目录常见一个空文件夹,名字为build.
- 安装winflexbison,下载地址如下:
https://sourceforge.net/projects/winflexbison/
????下载zip文件后解压缩,文件夹的结构如下:
????里面并没有安装文件,所以需要在下面的步骤中的CMAKE文件中进行一些设置。
- 下载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中定义的方法不一样。
?
- 更改CMakeList.txt来指定BISON和GLEW的路径。
- 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的相关文件。
?
- 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的路径才可以)
?
- GLSL-Debugger\GLSLCompiler\glslang\MachineIndependent\CMakeList.txt
- 安装QT4.X
我安装的是 QT4.8.6, 在这里下载的: https://download.qt.io/archive/qt/4.8/4.8.6/
下载后一步步点击安装即可。
- 下载mhook。 GLSL-Debugger文件夹下已经有了一个空的文件夹,需要通过git或者svn下载到这个文件夹。下载网址为:https://github.com/SirAnthony/mhook
?
- 官网上说要下载freeglut. 我下载下来了,(下载地址: http://www.transmissionzero.co.uk/software/freeglut-devel/ ),解压后文件夹结构如下:
好像实际并没有用,忘了。好像是因为我配置了glew就不用这个了。
- 然后按照GLSL-Debugger网站上的步骤执行如下操作
- 用管理员身份打开Developer Command Prompt for VS2013.
- Cd到build目录。
- 执行 cmake ../GLSL-Debugger。
上述步骤完成后,会在build文件夹下面产生一个Visual studio的解决方案,名字为glsldb.sln.
- 用管理员身份打开解决glsldb.sln.
然后点击Rebuild solution, 就会在build\bin\Debug中出现一些可执行文件,其中的glsldb.exe就是我们需要的GLSL Debugger的程序。
当然,在编译的时候可能遇到问题。我当时遇到了如下的问题:
- Glsldb 项目编译报错,提示方法没有声明,手动指定了glew32.lib的路径后解决。
(重要:这里需要注意的是,如果要改, Debug和Release的配置都要改,改了Debug, Release的配置不会自动改。这样编译出来的应用程序可能会有问题。)
- 编译后打开glsldb.exe, 会提示QTGLSLT4.dll找不到,将QT的路径加到环境变量里就解决了。
- 提示找不到glew32.exe, 将glew的bin目录加到环境变量里就解决了。
?
?
- Glsldb 项目编译报错,提示方法没有声明,手动指定了glew32.lib的路径后解决。
- 所有问题都解决后,打开build\bin\Debug文件夹
点击glsldb.exe.
?
大功告成!
(如果Debug配置下编译出来的程序用起来有问题,可以试试用Release配置再编译一下,用Release版本的程序,可能会好用了。)