wxwidgets setup.h“没有这样的文件”

问题描述 投票:0回答:5

在谷歌上快速搜索这个问题表明它很常见,我只是无法在我的案例中找出解决方案。

我直接从 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?

compiler-construction include wxwidgets codeblocks
5个回答
26
投票

当您“安装”wxMSW 安装程序时,wxWidgets 并未内置到可用库中。这是因为有太多可配置的元素,这正是您引用的 setup.h 的用途。

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

  1. 启动“Visual Studio 命令提示符”。您可以在开始菜单的“Microsoft Visual Studio -> Visual Studio Tools”下找到它。

  2. 更改为文件夹:[WXWIN root] uild\msw

  3. 构建默认调试配置:

    nmake -f makefile.vc BUILD=debug

  4. 构建默认发布配置:

    nmake -f makefile.vc BUILD=release

  5. 确保 DLL 位于您的路径中。它们可以在 [WXWIN root]\lib c_dll

  6. 中找到
  7. 在上面提到的 DLL 文件夹下,您将找到每个构建变体的子文件夹(上面的说明做了两个,调试和发布。)在每个变体文件夹中,您将找到一个包含“setup.h”文件的“wx”文件夹。您将看到每个构建变体的 setup.h 文件实际上是不同的。这些是您需要添加到项目构建配置包含路径中的文件夹,每个构建变体一个。因此,例如,您需要添加 [ WXWIN root]\lib c_dll\mswud 到调试版本的包含路径,[WXWIN root]\lib c_dll\mswu 到发布版本。

  8. 可以构建许多其他变体组合:静态库、整体单个库、非 Unicode 等。有关更广泛的说明,请参阅 [WXWIN root]\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 lib 文件夹。例如:

c:\wxWidgets-2.9.2\lib\vc_lib

然后,针对每个构建配置,设置附加依赖项以包含相应 wxWidgets 库的库。例如,对于 Unicode,调试构建(u = Unicode,d = 调试):

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 中。


0
投票

为了使任何工作正常进行,您首先必须构建核心库(wx_vc#.sln 文件)。 然后你就可以处理剩下的东西了。

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


0
投票

是的,即使我在 Windows 上也遇到过这个问题。但这是最简单的事情。 (复制和粘贴)

您必须将该 setup.h 文件从

./wxWidgets/include/wx/msw/wx/setup.h
移动到
./wxWidgets/include/wx
目录。

因此您的源代码可以将该文件用作

#include <wx/setup.h>

这个 setup.h 内部包含所有 wxwidgets UI 控件。

© www.soinside.com 2019 - 2024. All rights reserved.