wxWidgets设置.h文件“无此文件”

18

通过快速的谷歌搜索可以发现这是一个常见问题,但在我的情况下我实在找不到解决方法。

我使用的是从wxWidgets网站直接下载的Windows版wxWidgets 2.8.8的简单安装程序。

每当我尝试编译任何东西时(例如“wxWidgets的第一个程序”教程中描述的示例应用程序 - http://zetcode.com/tutorials/wxwidgetstutorial/firstprograms/),我都会得到:

wx/setup.h: 没有那个文件或目录

我已将C:\wxWidgets-2.8.8\include和C:\wxWidgets-2.8.8\include\wx两个路径加入了我的编译器搜索列表。

这应该很简单 - 但事实并非如此!:(

如果我尝试使用与wxWidgets集成的IDE(例如Code::Blocks),同样的问题也会出现 - 我本以为这应该是开箱即用的...

所以,请帮帮我... 为什么找不到setup.h文件?

4个回答

26

wxWidgets并没有在安装wxMSW安装程序时作为可用库进行构建。这是因为有许多可配置的元素,这正是您所引用的setup.h文件的目的。

如果您只想尽快使用默认选项构建它并继续进行下一步,请按照以下步骤操作:

  1. 启动"Visual Studio命令提示符"。您可以在开始菜单下找到它,路径为"Microsoft Visual Studio -> Visual Studio Tools"。

  2. 切换到文件夹:[WXWIN根目录]\build\msw

  3. 构建默认的调试配置:nmake -f makefile.vc BUILD=debug

  4. 构建默认的发布配置:nmake -f makefile.vc BUILD=release

  5. 确保DLL文件在您的PATH环境变量中。它们将在[WXWIN根目录]\lib\vc_dll中找到。

  6. 在上述DLL文件夹下,您将找到每个构建变体的子文件夹(上述说明创建了两个,debug和release)。在每个变体文件夹中,您将找到一个名为'wx'的文件夹,其中包含一个名为'setup.h'的文件。您会发现每个构建变体的setup.h文件实际上都是不同的。这些是您需要添加到项目构建配置包含路径中的文件夹,每个构建变体一个文件夹。例如,您会将[WXWIN根目录]\lib\vc_dll\mswud添加到调试构建的包含路径中,将[WXWIN根目录]\lib\vc_dll\mswu添加到发布构建的包含路径中。

  7. 还可以构建许多其他变体组合:静态库、单片式库、非Unicode等。请参阅[WXWIN根目录]\docs\msw\install.txt获取更详细的说明。


8

在构建wxWidgets时,它会为每个构建配置动态创建一个setup.h文件。生成的setup.h文件存储在lib文件夹下的各个子文件夹中,例如(Windows上的Visual Studio):

c:\wxWidgets-2.9.2\lib\vc_lib\mswu

为了成功构建基于wxWidgets的项目,必须为项目中的每个构建配置设置自己的附加包含目录,并指向lib下对应的wxWidgets构建文件夹,例如上面列出的那个。
此外,必须设置一个针对项目中所有构建配置通用的附加包含目录,以指向wxWidget的主要包含文件夹。这个文件夹通常是在用户属性表中设置的,可以在任何项目中使用。例如:
c:\wxWidgets-2.9.2\include

为了进行链接,需要设置一个通用的附加库目录,将其指向wxWidgets库文件夹。例如:

c:\wxWidgets-2.9.2\lib\vc_lib

然后,针对每个构建配置,设置了附加依赖项条目以包括相应wxWidgets库的库。例如,对于Unicode、Debug构建(u = Unicode,d = Debug):

wxbase29ud.lib

然后,在您的项目中使用wxWidgets,首先要包含生成的setup.h文件:

#include "wx/setup.h"

然后包括特定wxWidgets功能的标题。例如:

#include <wx/slider.h>
#include <wx/image.h>
#include <wx/control.h>

2
您可能需要构建wxWidgets。在wxWidgets构建过程中有一个后期构建步骤,将适当的setup.h复制到C:\ wxWidgets_install_dir \ include \ wx中。

3
setup.h不应该放在include/wx文件夹中,否则会阻止您使用wxWidgets进行多个构建配置(例如调试、发布等)。实际的构建过程会将经过适当配置的setup.h标头复制到[WXWIN根目录]\lib下的特定于配置的文件夹中。 - kbluck
1
例如,如果您使用的是Windows操作系统,请将wx/msw目录下的setup.h文件复制到wx目录下。 - Jichao

0

任何事情要想运行,首先必须构建核心库(wx_vc#.sln文件)。 然后才能处理其余的内容。

请记住,您需要CppUnit来编译测试用例。


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