原创 wxwidgets+vc2005配置方法

2009-5-31 17:00 4794 5 5 分类: MCU/ 嵌入式
在实验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例子。
PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
5
关闭 站长推荐上一条 /3 下一条