0

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

根据主题,我无法使用 CodeLite 14 和 wxWidgets 3.1.4(使用 MSYS2-mingW64 编译)在 Windows 10 中编译基本的 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

所有文件夹/文件都正确就位。通过修改这些标志,我发现没有给出错误,并且如果我删除标志,程序可以正确编译,--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并手动配置所有编译器标志。所以:

  • 有什么办法可以避免这种情况吗?
  • 那面旗帜是干什么用的?
4

1 回答 1

1

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

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

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

于 2021-02-15T13:14:19.463 回答