今天我决定熟悉wxWidgets。我下载了版本2.8.9 (当前版本),并以所有所需的模式编译了库。
我能够构建/运行随wxWidgets附带的示例。但是,当我使用/Za编译(即禁用语言扩展)时,即使是最小的wxWidgets示例也会出现超过100个构建错误。
我找不到关于这个问题的任何文件。我是否可以定义一些将wxWidget的内部结构转换为符合标准的东西(至少就VC++的遵从性而言)?
也许我在建图书馆的时候做错了什么..。以前有没有人遇到过这样的“问题”?
谢谢!
编辑:--我忘了提到我正在使用VC++ 9。
另外,以下是最初的几个错误:
--开始构建:项目:最小,配置: Unicode Debug Win32 编译..。 minimal.cpp C:\wxWidgets 2.8.9\include\wx/dynarray.h(69):error C2143:语法错误:缺失')‘在'*’之前‘ C:\wxWidgets 2.8.9\include\wx/dynarray.h(69):error C2143:语法错误:缺失';‘在'*’之前‘ C:\wxWidgets 2.8.9\include\wx/dynarray.h(69):error C2059:语法错误:‘’ C:\wxWidgets 2.8.9\include\wx/dynarray.h(69):error C4430:缺失类型说明符- int假设。注意: C++不支持默认-int。 C:\wxWidgets 2.8.9\include\wx/dynarray.h(810):error C2146:语法错误:缺失';‘在标识符'SCMPFUNC’之前 C:\wxWidgets 2.8.9\include\wx/dynarray.h(810):error C4430:缺失类型说明符- int假设。注意: C++不支持默认-int。 C:\wxWidgets 2.8.9\include\wx/dynarray.h(810):error C4430:缺失类型说明符- int假设。注意: C++不支持默认-int。 C:\wxWidgets 2.8.9\include\wx/dynarray.h(811):error C2146:语法错误:缺失';‘在标识符'SCMPFUNC’之前 C:\wxWidgets 2.8.9\include\wx/dynarray.h(811):error C4430:缺失类型说明符- int假设。注意: C++不支持默认-int。 C:\wxWidgets 2.8.9\include\wx/dynarray.h(811):error C4430:缺失类型说明符- int假设。注意: C++不支持默认-int。
编辑:看起来第一个错误是由使用_cdecl这一事实引起的。看起来defs.h只检查是否定义了__VISUALC__。在视线中没有关于书呆子的事..。
发布于 2009-03-01 12:01:01
您可能会发现,您甚至无法使用Win32构建一个基本的/Za应用程序,更不用说wxWidgets应用程序了,因为VS2008使用语言扩展时附带的Windows标头。唯一的解决方案是禁用/Za。
您所看到的具体错误是因为_cdecl关键字是微软的扩展,而不是标准C++的一部分。有关更多信息,请参见MSDN中的/Za以及微软对C和C++的扩展和C++关键词页面。
https://stackoverflow.com/questions/599195
复制相似问题