在实验opengl例子时,出现以下错误: 正在链接... cube.obj : error LNK2001: 无法解析的外部符号 "protected: static struct wxEventTable const wxGLCanvas::sm_eventTable" (?sm_eventTable@wxGLCanvas@@1UwxEventTable@@B) cube.obj : error LNK2019: 无法解析的外部符 号 其中库wxmsw28d_gl.lib是根据下载时的,编译后的发现没有这个库,不清楚具体原因。可能因为gl路径没有设置正确? 重新编译wxwidge后没有这个问题了。 是出现stake overflow错误,可能需要用dll版本的wxwidge编译下? 还出现在运行程序后,除了有stake overflow外,还造成了google搜索时出现错误,说可能是恶意软件发出的。重启机器后可以正常搜 索了。现在估计是因为wxwidgets没有安装在无空格的目录中引起的。因此现在需要重新将wxwidgets安装在无空格的目录中。然后再编 译,并编译examples中opengl的例子,若都正常了,才说明wxwidgets正常安装了。 所以卸载c:\program files下的wxwidgets,重新安装在g盘根目录下。 拷贝到G盘后,进入g:\wxwidgets-2.8.7\build\msw,用命令nmake -f makefile.vc UNICODE="1" BUILD="debug" USE_OPENGL=1 编译。参见 http://godmom.blog.sohu.com/67016029.html 同时,修改G:\wxWidgets-2.8.7\include\wx\msw 下的setup.h中的: #define wxUSE_GLCANVAS 1 编译时,出现打不开文件g:\wxwidgets-2.8.7\lib\wxmsw28ud_core.pdb错误 将其路径加入path中,再试(命令:set path=...;%PATH%),还不行。改用release版本编译,通过! 下面实验下不用安装文件,而是直接将下载的源代码解压缩到这个G:\track盘,然后再修改setup.h文件,修改PATH变量,按照nmake命令 编译后再试验下,看是否可行?还是不能写入.pdb文件。问题解决!关闭杀毒软件,防火墙即可。因为这些软件可能防止了向.pdb写入内 容。:1. another debugger having the file open. 2. disk space 3. anti virus 依次编译其他组合:BUILD=release,UICODE=1 下面再试验编译opengl的例子。 同样用在samples\opengl\cube目录下,用nmake -f makefile.vc UNICODE="0" BUILD="debug" USE_OPENGL=1命令编译成功。 中间出现.pbd文件过期的错误,按照其指示删除这个.pbd文件后再进行编译,成功! 下面实验从IDE中编译这些例子,看是否可行。 打开cube.dsp,转换后,编译发现链接错误: CVTRES : fatal error CVT1100: 重复的资源。type:MANIFEST, name:1, language:0x0409 LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏 解决方案: 已经到了链接期,应该说,问题就不像编译通不过那么别扭了,而查阅MSDN关于这两个问题的说明,终于找到了解决的方法,现简单的陈述如下: 首先,出现这两个问题的原因都是一个,即文件中的现有资源文件和新资源字符串表 ID 冲突。微软也给出了解决这个问题的方法,但是,在现有的情况下,这个方法是靠不住的,因为,不可能不使用wx.rc资源。所以,一个变通的解决方法就是: 工程属性->配置属性-> 清单工具->输入和输出->嵌入清单,选择[否],即可。 以上成功编译了wxwidgets及其opengl例子。
文章评论(0条评论)
登录后参与讨论