我正在尝试做一些 GUI 的东西,我想在 Windows 7 上为 Visual Studio 2005 设置 wxWidget。我在过去几天阅读了可能的教程和帮助,但它们都显示了不同的方式。他们都不适合我。在包含 c:/wxWidgets-2.9.4/include 和 /lib 目录到 Visual Studio 但仍然显示 wx/setup.h 未找到。任何人都可以提供从头开始设置 wxWidget 的教程。(从下载所需的包到完整的工作示例)。因为我也很困惑我应该下载哪一个,所以他们提供了许多 zip forders。
2 回答
@tinman 的配方允许您构建任何东西,但这需要很长时间。
一个更简单的配方,它只构建必要的库:
使用安装包进行安装。
找到 microsoft visual studio build 文件夹。在我的安装中,这是 C:\wxWidgets-2.9.n\build\msw
找到适合您的 Visual Studio 版本的解决方案(例如 wx_vc8.sln)并打开它。
选择您在构建应用程序时要使用的配置。(例如 DLL 发布)
构建解决方案。
完毕。在任何相当强大的机器上,它应该需要大约五分钟。
有许多 zip 存档的原因是,从 2.9 开始,它们为每个 MSVC 版本提供了预构建的二进制包。我从来没有使用过这些,所以我不能对它们发表评论,但它们可能会为你节省大量构建源代码的时间并为你提供一个官方库。
我使用了 MSW 安装包并从源代码构建。这就是我所做的,对我来说效果很好(除了我目前使用 wx292、VS2008 和 Windows 7)。
安装它。我假设它会在c:\wxWidgets-2.9.4
.
创建一个c:\wxwidgets-2.9.4\build.bat
包含以下内容的批处理文件。你应该myvendor
用你的名字替换,这样很明显它不是一个官方的 wxWidgets 库构建(它将被放在文件名中,所以避免空格)。
@echo off
PUSHD build\msw
call :make
cd ..\..\samples
call :make
cd ..\demos
call :make
cd ..\utils
call :make
POPD
GOTO :EOF
@REM Perform builds with all desired configurations
:make
@REM x86 debug & release multiple DLLs Unicode
nmake -f makefile.vc MONOLITHIC=0 SHARED=1 UNICODE=1 BUILD=debug VENDOR=myvendor
nmake -f makefile.vc MONOLITHIC=0 SHARED=1 UNICODE=1 BUILD=release VENDOR=myvendor
@REM x86 debug & release multiple static libs Unicode
nmake -f makefile.vc MONOLITHIC=0 SHARED=0 UNICODE=1 BUILD=debug VENDOR=myvendor
nmake -f makefile.vc MONOLITHIC=0 SHARED=0 UNICODE=1 BUILD=release VENDOR=myvendor
从“开始”菜单打开 Visual Studio 2005 命令提示符。这将正确设置编译器和库的路径。
将目录更改为 wxWidgets: cd c:\wxWidgets-2.9.4
。
跑过build.bat
它应该在几个小时后完成,具体取决于您的计算机规格,或者您可以REM
构建示例、实用程序和演示以减少时间(感谢@ravenspoint)。您还可以查看示例c:\wxWidgets-2.9.4\samples
项目并从示例项目中获取 Visual Studio 项目设置以在您自己的项目中使用(例如C:\wxWidgets-2.9.4\samples\dialogs\dialogs_vc8.vcproj
)。
在构建库之后,您最终会得到一些额外的目录,C:\wxWidgets-2.9.4\lib
其中包含构建的库、dll 和该变体的任何构建特定标头。以下目录是从我的批处理脚本中的构建创建的,并使用工具集(在本例中为 Visual C 的 vc,但可能是特定于版本的,例如 vc80 或固定版本,具体取决于您的构建设置)和库类型. msw
目录和文件名中的意思是 MicroSoft Windows。u
在目录和文件名中表示 Unicode。d
在目录和文件名的末尾表示调试。
C:\wxWidgets-2.9.4\lib\vc_lib
: Visual C (vc) 静态库 (lib) 版本的 wxWidgetsC:\wxWidgets-2.9.4\lib\vc_lib\mwsu
: MicroSoft Windows Unicode 特定文件C:\wxWidgets-2.9.4\lib\vc_lib\mwsud
: MicroSoft Windows Unicode Debug 特定文件- 还包含用于发布和调试的静态库的混合
C:\wxWidgets-2.9.4\lib\vc_dll
: wxWidgets 的 Visual C (vc) DLL (dll) 版本C:\wxWidgets-2.9.4\dll\vc_lib\mwsu
: MicroSoft Windows Unicode 特定文件C:\wxWidgets-2.9.4\dll\vc_lib\mwsud
: MicroSoft Windows Unicode Debug 特定文件- 还包含用于发布和调试的 DLL 和导入库的混合
为了在您自己的项目中使用新构建的库,您可以按照以下步骤操作(我使用的是 VS2008,因此某些配置名称可能会略有不同):
创建新项目时,您需要转到项目属性。
如果您正在使用 DLL,请在配置属性 -> 常规 -> 环境下添加以下内容(以便您的应用程序可以找到 DLL):
PATH=C:\wxWidgets-2.9.4\lib\vc_dll
在 C/C++ -> General -> Additional Include Directories 下,您需要按以下顺序添加 wxWidgets 包含:
- "C:\wxWidgets-2.9.4\include\msvc"
- "C:\wxWidgets-2.9.4\include"
首先包含目录 1 的原因是该wx\setup.h
目录中有一个。当您包含它时,它会尝试确定什么编译器、库类型(静态或 DLL)、您是否使用 Unicode 以及它是调试还是发布,它会自动包含来自以下之一的正确的真实 wx/setup.h的子目录C:\wxWidgets-2.9.4\lib
。
然后,您需要转到 C/C++ -> Preprocessor -> Preprocessor Definitions 并添加以下行:
__WXMSW__
如果要使用 wxWidgets 的 DLL 版本而不是静态库,则需要添加以下行:
WXUSINGDLL
在 Linker -> General -> Additional Linker Directories 下,如果您使用静态库,则需要添加以下路径:
"C:\wxWidgets-2.9.4\lib\vc_lib"
或者如果您使用的是 DLL,请使用以下路径:
"C:\wxWidgets-2.9.4\lib\vc_dll"
在链接器 -> 输入 -> 附加依赖项中,您可能需要至少添加以下内容:
comctl32.lib rpcrt4.lib
在 Resources -> General -> Additional Include Directories 下,您需要添加以下路径:
C:\wxWidgets-2.9.4\include