【问题标题】:wxWidgets with MinGW, "wx/wx.h: No such file or directory"wxWidgets with MinGW, "wx/wx.h: No such file or directory"
【发布时间】:2021-05-18 10:46:31
【问题描述】:

我是 C++ 和 wxWidgets 的新手。在过去的几天里,我按照 Visual Studio 的教程学习了如何构建 wxWidgets 桌面应用程序 (https://www.youtube.com/watch?v=FOIbK4bJKS8&t=800s)。

现在,因为我不熟悉 Visual Studio,所以我想转而使用 Atom 编辑代码并从 Windows 命令提示符使用 MinGW 进行编译。

该应用有以下文件:

cMake.h
AnalogRead.h
cMake.cpp
AnalogRead.cpp

在Visual Studio中,需要在项目中包含两个目录和一个库,分别是: 路径:

/wxWidgets/include
/wxWidgets/include/msvc

图书馆:

/wxWidgets/lib/vc_lib

相对于 C++ 代码所在的路径。

所以我尝试创建编译行,但没有成功:

c++ -I/wxWidgets/include -I/wxWidgets/include/msvc -L/wxWidgets/lib/vc_lib cMake.cpp AnalogRead.cpp -o test

但我收到以下错误:

In file included from AnalogRead.cpp:1:0:
AnalogRead.h:3:19: fatal error: wx/wx.h: No such file or directory
 #include <wx/wx.h>
                   ^
compilation terminated.

问题是,我在编译中包含了该路径。 wx/wx.h 在路径 /wxWidgets/include/ 内。

有没有办法解决这个问题?提前致谢。

【问题讨论】:

  • 由于 Visual Studio 的社区版是免费的,您可以直接下载它,而不是使用已从 Linux 移植到 Windows 的编译器。您的问题似乎是由 Windows 和 Linux 路径的差异引起的。
  • 除非你的编译器真的是 Visual Studio,否则在 /wxWidgets/include/msvc 中使用头文件也是没有意义的。
  • 我确实在 Visual Studio 中编译了 wxWidgets。我不知道在命令行中编译的目录会有所不同。我想我现在必须坚持使用 Visual Studio 以避免错误。
  • 如果您使用 Visual Studio 编译 wxWidgets,那么您别无选择,只能将 Visual Studio 用于您的主程序。你不能像那样混合和匹配编译器。

标签: c++ mingw wxwidgets


【解决方案1】:

/wxWidgets/include 不是相对路径。这是当前磁盘中的绝对路径。你有C:\wxWidgets\include吗?试试-IwxWidgets/include-I./wxWidgets/include,不带前导/。如果您的应用程序源中有 wxWidgets 目录,则此路径应该有效。

【讨论】:

  • 这确实使它工作,但随后 setup.h 文件中出现另一个错误:“致命错误:../../../lib/vc_lib /msw /wx/setup.h : 无此文件或目录”。我猜那是因为我在 Visual Studio 中编译了 wxWidgets。
【解决方案2】:

你不能用一个编译器编译库,然后用另一个编译器编译应用程序,这是行不通的。您应该决定要使用哪个编译器(或者尝试同时使用它们,但不能同时使用它们!)并按照文件docs/msw/install.md 中的官方构建说明进行操作。

【讨论】:

    【解决方案3】:

    如果您想使用 MinGW,您需要使用 MinGW 编译器构建库,然后使用完全相同的命令来构建您的软件。

    或者使用 IDE(CodeBlocks、CodeLite)。

    HTH。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-22
      • 2023-04-03
      • 2022-01-13
      • 1970-01-01
      • 2016-01-05
      • 2016-11-01
      • 2013-07-02
      • 1970-01-01
      相关资源
      最近更新 更多