Cg配置经验谈
首先说明,这里的Cg是C for graphic而不是Computer Graphic希望童鞋们不要误会。
前一阵在学GLSL,不过后来听说Cg应用更广一些,所以想学习一下Cg。详细的配置就和做一个一般的C或OpenGL项目差不多,只不过是要在代码中引入相应的头文件,在代码中读取cg文件,没有什么特别之处。这里主要说说我在配置时出现的问题,和大家共同学习。
第一,有些朋友有找不到cg.h,cg.lib之类的问题。解决办法是:先在http://developer.nvidia.com/object/cg_download.html下载Cg toolkit。然后,因为我是使用的是VS2010,所以就将“E:\Program Files\NVIDIA Corporation\Cg”(这只是我的地址)中的include目录和lib目录复盖E:\Program Files\Microsoft Visual Studio 10.0\VC的include和lib即可(另外我是用OpenGL来写的所以还要做相应的配置, 这里省略,需要的朋友可能百度之)。
第二,出现形如:”: error LNK2019: 无法解析的外部符号 _cgGLLoadProgram,该符号在函数 _main 中被引用“,这一类以“_cg”开头的找不到外部符号的错误。有两种解决办法:
1.在
- #include <XXXX>
后边加上:
- #pragma comment( lib, "cg.lib" )
- #pragma comment( lib, "cgGL.lib" )
另外要说一下,要是报出”无法解析的外部符号__glewInit“之类的错误,按照如上方法加入glew32.lib即可。
第三,出现”已加载“C:\Windows\System32\ntdll.dll”,Cannot find or open the PDB file“之类的消息,可以无视。
第四,这个问题也困扰了我很久,就是编译没有错误了,打开了一个窗口但一闪就消失了。在如下帖子http://topic.csdn.net/u/20101108/14/49f2a594-8da2-4f5e-a01d-dd08b29f961b.html的12楼,给出了Ctrl + F5的办法,我按了之后弹出的窗口没有关闭,我发现窗口中的提示信息:“The file could not be read.”我的cg文件指定的是"Cg/C2E1v_green.cg",可是我明明在“解决方案资源管理器”建了一个"Cg"文件夹,里边放了一个"C2E1v_green.cg"文件的,怎么回事儿呢?好奇的力量驱使我用”资源管理器“打开项目文件夹,惊人的一目发生了:项目文件夹里并没有一个”Cg“文件夹,原来,VS2010的“解决方案资源管理器”和系统的”资源管理器“里表示的内容并不相同,于是我就在”资源管理器“里建了一个"Cg"文件夹,里边放了一个"C2E1v_green.cg"文件,再次编译,成功啦!!!
我的Cg配置经验就先谈到这儿了,欢迎大家留言交流。
转载请注明出处:http://blog.csdn.net/zc1415926/article/details/6945141