当前位置:  开发笔记 > 编程语言 > 正文

wxWidgets和VC++

如何解决《wxWidgets和VC++》经验,为你挑选了1个好方法。

我今天决定熟悉wxWidgets.我下载了2.8.9版(当前版本),并以所有需要的模式编译了库.

我能够开箱/运行带有wxWidgets的样品.但是,当我使用/ Za编译(即禁用语言扩展)时,即使是最小的wxWidgets样本,我也会遇到100多个构建错误.

我无法找到有关此问题的任何文档.我可以定义一些能够将wxWidget内部转换为符合标准的东西(至少就VC++的合规性而言)吗?

也许我在构建原始库时做错了什么......有没有人以前遇到过这个"问题"?

谢谢!

编辑:我忘了提到我正在使用VC++ 9.

此外,这是前几个错误:

------ Build build:项目:minimal,配置:Unicode Debug Win32 ------

编译...

minimal.cpp

c:\ wxWidgets-2.8.9\include\wx/dynarray.h(69):错误C2143:语法错误:缺少')'在'*'之前

c:\ wxWidgets-2.8.9\include\wx/dynarray.h(69):错误C2143:语法错误:缺少';' 在'*'之前

c:\ wxWidgets-2.8.9\include\wx/dynarray.h(69):错误C2059:语法错误:')'

c:\ wxWidgets-2.8.9\include\wx/dynarray.h(69):错误C4430:缺少类型说明符 - 假定为int.注意:C++不支持default-int

c:\ wxWidgets-2.8.9\include\wx/dynarray.h(810):错误C2146:语法错误:缺少';' 在标识符"SCMPFUNC"之前

c:\ wxWidgets-2.8.9\include\wx/dynarray.h(810):错误C4430:缺少类型说明符 - 假定为int.注意:C++不支持default-int

c:\ wxWidgets-2.8.9\include\wx/dynarray.h(810):错误C4430:缺少类型说明符 - 假定为int.注意:C++不支持default-int

c:\ wxWidgets-2.8.9\include\wx/dynarray.h(811):错误C2146:语法错误:缺少';' 在标识符"SCMPFUNC"之前

c:\ wxWidgets-2.8.9\include\wx/dynarray.h(811):错误C4430:缺少类型说明符 - 假定为int.注意:C++不支持default-int

c:\ wxWidgets-2.8.9\include\wx/dynarray.h(811):错误C4430:缺少类型说明符 - 假定为int.注意:C++不支持default-int

编辑:它看起来像是由使用_cdecl引起的第一个错误.看起来defs.h只检查是否定义了__VISUALC__.关于迂腐的一切......



1> ChrisN..:

你可能会发现你甚至无法构建一个基本的Win32应用程序,更不用说wxWidgets应用了/Za,因为VS2008附带的Windows Platform SDK头文件使用了语言扩展.唯一的解决方案是禁用/Za.

您看到的具体错误是因为该_cdecl关键字是Microsoft扩展,而不是标准C++的一部分.有关详细信息,请参阅MSDN中的文档/Za以及Microsoft扩展到C和C++和C++关键字页面.

推荐阅读
郑谊099_448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有