windres 找不到 "wx/msw/wx.rc" 使用 MSYS2-minGW64 和 Codelite 构建 wxWidgets 项目

windres cannot find "wx/msw/wx.rc" building wxWidgets project with MSYS2-minGW64 and Codelite

打开一个新问题,因为有些 older answer 不适用于我的情况。

根据主题,我无法使用 CodeLite 14 和 wxWidgets 3.1.4(使用 MSYS2-mingW64 编译)在 Windows10 中编译基本的 wxWidgets“Hello,World”程序。

错误信息在行

C:/Users/Federico/codelite/wxHelloWorld/win_resources.rc:1:10: fatal error: wx/msw/wx.rc: No such file or directory
    1 | #include "wx/msw/wx.rc"
      |          ^~~~~~~~~~~~~~
compilation terminated.

wx-config 运行 wx-config --rcflags返回的资源文件标志是:

--use-temp-file --define __WXMSW__ --define _UNICODE --include-dir C:/wx/3.1.4-msys/lib/gcc_lib/mswu --include-dir C:/wx/3.1.4-msys/include

所有folders/files都已到位。通过修改这些标志,我发现没有给出错误,并且程序可以正确编译,如果我 删除 --use-temp-file 标志,如:

--define __WXMSW__ --define _UNICODE --include-dir C:/wx/3.1.4-msys/lib/gcc_lib/mswu --include-dir C:/wx/3.1.4-msys/include

然后一切正常。不幸的是,该标志默认由 wx-config 假定,因此没有它的唯一简单解决方案就是停止使用 wx-config 并手动配置所有编译器标志。所以:

这真的很奇怪,因为 --use-temp-file 的使用已从 commit 093c3067e8 中的 wx makefile 中删除(不要使用 windres --use-temp-file 选项,2020-07-13 ) 是 3.1.4 的一部分,所以你根本不应该看到它。

但是等等,它甚至更奇怪,因为 wx-config 没有您显然使用的 --rcflags 选项。它确实有 --rescomp 选项,但它从来没有在其输出中包含 --use-temp-file,AFAICS,而且绝对不在 3.1.4 中。

看来您使用的不是官方的 3.1.4 版本。而你第一个问题的答案是使用官方资源。