【问题标题】:wxwidgets setup.h "no such file"wxwidgets setup.h "没有这样的文件"
【发布时间】:2010-09-13 03:19:16
【问题描述】:

Google 快速搜索此问题表明它很常见,但我终其一生都无法找出解决方案。

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


    【解决方案1】:

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

    如果您只想尽快使用默认选项构建它并继续前进,方法如下:

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

    2. 切换到文件夹:[WXWIN root]\build\msw

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

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

    5. 确保 DLL 在您的 PATH 中。它们位于 [WXWIN root]\lib\vc_dll

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

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

    【讨论】:

      【解决方案2】:

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

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

      要成功构建基于 wxWidgets 的项目,项目中的每个构建配置都必须设置有自己的 Additional Include Directory,该目录指向 lib 下对应的 wxWidgets 构建文件夹,例如上面列出的那个。

      此外,必须将项目中所有构建配置通用的附加包含目录设置为指向 wxWidget 的主包含文件夹。此文件夹通常设置在可用于任何项目的用户属性表中。例如:

      c:\wxWidgets-2.9.2\include
      

      对于链接,所有构建配置通用的附加库目录设置为指向 wxWidgets lib 文件夹。例如:

      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>
      

      【讨论】:

        【解决方案3】:

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

        【讨论】:

        • setup.h 不应该在 include/wx 文件夹中。这将阻止您使用具有多个构建配置的 wxWidgets;调试、发布等。构建过程实际上将适当配置的 setup.h 头文件复制到 [WXWIN root]\lib 下的配置特定文件夹。
        • 比如你在windows下,把setup.h从wx/msw复制到wx。
        【解决方案4】:

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-08-03
          • 2019-03-13
          • 2015-08-08
          • 2021-03-03
          • 1970-01-01
          • 1970-01-01
          • 2016-02-14
          • 1970-01-01
          相关资源
          最近更新 更多