位置: 编程技术 - 正文
推荐整理分享在mingw/GNU上编译opengl代码问题(mingw 编译),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:g++编译指令,gnuc编译器,g++命令行编译,用g++编译,mingw 编译,编译器gnu,编译器gnu,mingw编译glfw,内容如对您有帮助,希望把文章链接给更多的朋友!
最近在重新学习Opengl图形编程,老师让我们看nehe的opengl教程。
第一课是建立opengl基础框架,既是nehe教程的Lesson1。因为以前在vs上用opengl开发过项目,环境已经搭建好,所以Lesson1的代码在vs上很容易就编译通过并且运行成功。
但是在QT5.4.1上用Lesson1源代码建立纯c语言项目却出现了问题,其中主要的错误是:
就是GLvoid还有字符串的转换问题,奇怪的是GLvoid作为函数返回类型时没提示错误。
其中字符串的问题通过在pro文件加入一句代码:
DEFINES -= UNICODE
即可解决,就是让工程采用“多字节字符集”。
最主要的是GLvoid的问题。
在网上找了很久,网友大致有几种思路。
1、少了一句extern “C”。
2、缺少相关lib文件。
3、编译器问题。
因为extern “C”是用在改变编译器以C的命名方式给symbol命名,因此如果这里错误的话应该是在link阶段报错,而这里的错误明显是在语法分析阶段出现的错误。故排除前两种思路。
但第三种思路国内网友也只是说了个大概,最后还是在一个外国的网站上看到外国网友也提到了相同的问题。网址如下:
studio的编译器时无论c后缀或者cpp后缀程序都能顺利通过。(这是因为微软的编译器语法分析没那么严谨吗。。。。)
另外,当我定义自己的类型和函数后依旧得到以上的情况。
好吧,写了这么久,最后总结一下。以上问题是由于c语法比较严谨造成的,想通过c编译的话请选择vs的编译器或者将代码里面作为函数参数的GLvoid去掉。
OpenGL——颜色混合 glBlendFunc函数 参考来源:
openGL/ESv2 通过JNI的简单示例代码 //OpenGLES2.0code#includenativehelper/jni.h#defineLOG_TAG"GL2JNIgl_code.cpp"#includeutils/Log.h#includeEGL/egl.h#includeGLES2/gl2.h#includeGLES2/gl2ext.h#includestdio.h#includestdlib.h#includemath.hst
glCopyBufferSubData glCopyBufferSubDataglCopyBufferSubData将数据从一个缓冲区拷贝到另一个缓冲区函数原型:voidglCopyBufferSubData(GLenumreadTarget,GLenumwriteTarget,GLintptrreadOffset,GLintptrwriteOf
标签: mingw 编译
本文链接地址:https://www.jiuchutong.com/biancheng/369444.html 转载请保留说明!友情链接: 武汉网站建设