[attach]3057[/attach]
程序编译报错 错误为:
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.0\include\GL/glew.h(84): fatal error C1189: #error : gl.h included before glew.h
请问错误的原因 以及解决办法
[attach]3057[/attach]
程序编译报错 错误为:
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.0\include\GL/glew.h(84): fatal error C1189: #error : gl.h included before glew.h
请问错误的原因 以及解决办法
楼主在灌水吗?
请将glew.h放在gl.h前面#include而不是颠倒过来。谢谢。
以及,也请放在glext.h否则有类似错误提示的。楼主。
楼主可以详见此文件(glew.h),前面有这么几句:
#if defined(_gl_h) || defined(GL_H) || defined(__X_GL_H)
#error gl.h included before glew.h
endif
#if defined(_glext_h) || defined(_GLEXT_H)
#error glext.h included before glew.h
endif
#if defined(alex_xu)
#error glew is incompatible with alex_xu
endif
所以你不能将gl.h或者glext.h放在它前面
以及,需要说明的是,你实际上不需要#include你的gl.h和glext.h的。不过#include也没事(相当于没用,但不会报错,只要你放置了正确的顺序)。
原来是这样啊 但是我调用了glBindBuffer()这个函数 它好像是定义在glew.h这个头文件里面的
原来是这样啊 但是我调用了glBindBuffer()这个函数 它好像是定义在glew.h这个头文件里面的
我说的是让你#include头文件glew.h! 而不是让你include后2者(gl.h/glex.t)来取代glew.h!
您确定您认真看了么!!!!(真心伤心)
您可以直接将glew.h看成是gl.h和glext.h的超集。
请只include贵机的glew.h和glut.h。谢谢合作。
这句话 还是不太懂 放在前面是什么意思 我把两句的位置调换 还是一样报错 能麻烦版主具体写一下吗 非常感谢
不好意思 我以前从来没有这写过头文件 进行调用 没有经验 希望版主原谅:L
你看了我对你的2#和3#的回复了么?不仅gl.h, 也要放在glext.h的前面的!
即: 先#include你的glew.h,再#include你的gl.h, glext.h。
以及,实际上先#include的glew.h会实际上屏蔽掉gl.h和glext.h的。
所以我还说过你可以只用glew.h代替这2者。(即此时只需要glew.h和glut.h)
但是你都不看!!你说回复的人郁闷不郁闷!!
请尊重版主为你的辛苦劳动!
请重复回去阅读!
谢谢!
include “cuda_runtime.h”
include “device_launch_parameters.h”
include <stdio.h>
include “cuda_runtime.h”
include “GL/glew.h”
include “cuda.h”
include “cuda_gl_interop.h”
include “common/book.h”
include “common/cpu_bitmap.h”
include “math.h”
我include这些头文件之后
编译爆出了如下错误
1>TuXingHuCaoZuo.cu.obj : error LNK2001: 无法解析的外部符号 __imp____glewBufferData
1>TuXingHuCaoZuo.cu.obj : error LNK2001: 无法解析的外部符号 __imp____glewBindBuffer
1>TuXingHuCaoZuo.cu.obj : error LNK2001: 无法解析的外部符号 __imp____glewGenBuffers
1>TuXingHuCaoZuo.cu.obj : error LNK2001: 无法解析的外部符号 __imp____glewDeleteBuffers
1>F:\CUDA_Projects\TuXingHuCaoZuo\Debug\TuXingHuCaoZuo.exe : fatal error LNK1120: 4 个无法解析的外部命令
网上说是lib库的问题 但说的不是很清楚 能具体解释一下吗
include “cuda_runtime.h”
include “device_launch_parameters.h”
include <stdio.h>
include “cuda_runtime.h”
include “GL/glew.h”
include “cuda.h”
include “cuda_gl_interop.h”
include “common/book.h”
include “common/cpu_bitmap.h”
include “math.h”
我include这些头文件之后
编译爆出了如下错误
1>TuXingHuCaoZuo.cu.obj : error LNK2001: 无法解析的外部符号 __imp____glewBufferData
1>TuXingHuCaoZuo.cu.obj : error LNK2001: 无法解析的外部符号 __imp____glewBindBuffer
1>TuXingHuCaoZuo.cu.obj : error LNK2001: 无法解析的外部符号 __imp____glewGenBuffers
1>TuXingHuCaoZuo.cu.obj : error LNK2001: 无法解析的外部符号 __imp____glewDeleteBuffers
1>F:\CUDA_Projects\TuXingHuCaoZuo\Debug\TuXingHuCaoZuo.exe : fatal error LNK1120: 4 个无法解析的外部命令
网上说是lib库的问题 但说的不是很清楚 能具体解释一下吗
glew的问题超过了本坛的技术支持范围,以及,楼主你在对待版主的用心回复的过程中,表现了极大的不耐烦。请尊重。谢谢。
您的问题是因为没有链接(link)进去贵机上的glew32.lib(或者glew32s.lib)。
解决方案:
(1)设置您的项目属性的addition library directory,添加您存放glew*.lib的文件夹。
(2)在贵项目属性的linker input里,添加glew32.lib。(或者glew32s.lib, 这个是静态版本)。
问题已解决 在附加相中添加glew32.lib 并将glew.dll拷贝到bin目录下 即可
版主,我之前的工程里面用了glew,然后我把相关部分都删除了,改用glut,并注释掉了glew头文件包含,请问为什么还是出现这个错误?
c:\programdata\nvidia corporation\cuda samples\v5.0\common\inc\gl\glew.h(84): fatal error C1189: #error : gl.h included before glew.h
您好:
请您开新帖详细叙述一下您的问题,勿要挖坟。
祝您好运~