Vulkan

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.在

[html] view plaincopy
  1. #include <XXXX>  

    后边加上:

  1. #pragma comment( lib, "cg.lib" )   
  2. #pragma comment( lib, "cgGL.lib" )  
    2.在“解决方案资源管理器”中,项目名称上(注意不是解决方案名称上)单击右键,点击属性,在弹出的属性页中在选择:配置属性-->Linker-->Input,在Additional Dependencies中加入cg.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

posted on 2012-02-28 09:07  Vulkan  阅读(234)  评论(0编辑  收藏  举报

导航