wxWidgets和VC ++

时间:2009-03-01 03:29:37

标签: c++ visual-c++ wxwidgets

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

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

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

也许我在构建原始库时做错了什么......有没有人甚至在此之前遇到过这个“问题”?

谢谢!

编辑:我忘了提到我使用的是VC ++ 9。

此外,这是前几个错误:

  

------ Build build:Project: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 个答案:

答案 0 :(得分:5)

您可能会发现,即使是基本的Win32应用程序,更不用说使用/Za构建wxWidgets应用程序,因为VS2008附带的Windows平台SDK标头使用语言扩展。唯一的解决方案是禁用/Za

您看到的具体错误是因为_cdecl关键字是Microsoft扩展,而不是标准C ++的一部分。 有关详情,请参阅MSDN中的documentation for /Za以及Microsoft Extensions to C and C++C++ Keywords页面。