如何使用Visual Studio 2010构建wxWidgets 2.9.1?

4
我刚刚下载了Visual Studio C++ 2010 Express和wxWidgets 2.9.1。在wx\build\msw文件夹下,有VC++6到2008版本的解决方案文件。我试图打开最新的解决方案wx_vc9.sln,但是所有的项目都有一堆警告。在尝试构建时,每个项目都会出现以下错误:
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(151,5): error MSB6001: Invalid command line switch for "cmd.exe". The path is not of a legal form.
打开之前版本的解决方案wx_vc8.sln也会出现相同的转换警告和构建错误。
我搜索了谷歌并找到了一个建议,即从.dsw文件开始。我打开了wx.dsw文件,但每个项目文件都出现了以下错误:
D:\3rdParty\wx\build\msw\wx_wxregex.dsp : error : Project upgrade failed.
最后,我绝望地尝试了nmake /f makefile.vc ,但又遇到了另一个错误:
NMAKE : fatal error U1077: 'cl' : return code '0xc0000135'
有人有什么提示吗?谢谢。
4个回答

5
有两种方法可以解决这个问题,首先,如果你升级到更高版本的wxWidgets SVN主干,这个问题就会被解决(所以在2.9.2发布时它也将被解决)。如果你不想从主干工作或等待2.9.2,那么如果你对所有的.vcxproj文件进行查找和替换,并将

>$(INTDIR) $(OUTDIR);%(AdditionalInputs)

替换为

>%(FullPath);%(AdditionalInputs)

它应该可以正常编译。


修改完毕。虽然有很多警告,但没有错误!谢谢! - Mark Ransom

4

未来参考,请相信我,避免所有无意义的事情并启动您的Visual Studio 2010命令提示符并导航到[wxwidgets目录]\build\msw,然后使用以下命令使用makefile进行编译:

nmake -f makefile.vc BUILD=release MONOLITHIC=0 SHARED=0 UNICODE=1

当然,根据需要更改选项。这样做可以节省很多麻烦,这就是我的方法。


1
使用Visual C++ 2010 Express和wxWidgets 2.9.3进行编译的关键是不断按F7键,直到您在下方看到“0 Failed”消息。因为许多项目具有无法立即满足的依赖项,所以需要使用“F7”不断编译,直到所有依赖项都得到满足。
下载wxWidgets。我下载了.7-Zip文件(仅12 MB!),并将其安装在C:\wxWidgets上。结构应该像这样,您可以看到以下文件夹,如C:\wxWidgets\lib和C:\wxWidgets\build等等...
基本上,流程应该是进入C:\wxWidgets\build\msw,并打开VC-2008的wx_vc9解决方案文件,在被问及时将其转换为VC-2010。然后在顶部选择'DLL-Release Win32',并按F7键。等待编译完成并查看消息。然后不断按F7键,直到您在下方看到“0 Failed”消息。然后您会想以同样的方式编译'DLL-Debug'版本。
编译后的DLL文件可以在C:\wxWidgets\lib\vc_dll中找到。现在,要将vc_dll文件夹添加到您的PATH中,请右键单击我的电脑->属性->高级系统设置->环境变量->用户变量。搜索“Path”->“编辑”,然后只需将; C:\wxWidgets\lib\vc_dll附加到末尾即可。
这使得运行已编译的应用程序更加容易,因为您的.EXE现在可以轻松找到DLL。 当您打包时,显然需要捆绑特定的Release-DLL'S。
然后,您可以编译位于C:\wxWidgets\samples中的示例。 我只是进入单个项目文件夹,例如C:\wxWidgets\samples\drawing,并打开drawing_vc9项目,然后按提示进行转换,然后按F7创建发布版本。现在,如果您进入C:\wxWidgets\samples\drawing\vc_mswudll\文件夹,您的“drawing.exe”就准备好运行了!
玩得开心!

0

使用wx.dsw,我花了一段时间才最终搞定,但之后它会很好地构建。我还建议使用其中一个示例项目,例如“minimal”作为基础,只需修复所有配置路径以匹配您要构建的内容(因为手动设置时可能会遇到问题)。

如果您已经使用了wx_vc9(就像您所说的那样),最好将wx全部删除并重新开始,并像我上面说的那样使用wx.dsw。


我按照你的建议尝试删除所有内容并重新开始。但每个 .dsp 文件仍然出现错误 - 项目升级失败。我相信最近 Visual Studio 有一个服务包,可能会造成影响。 - Mark Ransom

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接