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



打开一个新的问题作为一些旧的答案并不适用于我的情况。

根据主题,我无法编译基本的wxWidgets "Hello, World"程序在Windows 10与CodeLite 14和wxWidgets 3.1.4(使用MSYS2-mingW64编译)。

错误信息在

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

所有文件夹/文件都在适当的位置。通过修改这些标志,我发现没有错误给出,并且程序可以正确编译,如果我删除--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的使用是3.1.4的一部分,在提交093c3067e8(不要使用windres——use-temp-file选项,2020-07-13)中从wx makefiles中删除的,所以你根本不应该看到它。

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

所以看起来你使用的不是官方的3.1.4版本。你第一个问题的答案是使用官方消息来源。

最新更新