簡體   English   中英

windres 找不到使用 MSYS2-minGW64 和 Codelite 構建 wxWidgets 項目的“wx/msw/wx.rc”

[英]windres cannot find “wx/msw/wx.rc” building wxWidgets project with MSYS2-minGW64 and Codelite

作為一些較舊的答案打開一個新問題不適用於我的情況。

根據主題,我無法使用 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並手動配置所有編譯器標志。 所以:

  • 有什么辦法可以避免這種情況嗎?
  • 那面旗幟是干什么用的?

這真的很奇怪,因為--use-temp-file的使用已從提交 093c3067e8中的 wx makefile 中刪除(不要使用 windres --use-temp-file 選項,2020-07-13),它是 3.1 的一部分.4,所以你根本不應該看到它。

但是等等,它甚至更奇怪,因為 wx-config 沒有您顯然使用的--rcflags選項。 它確實有--rescomp選項,但它從來沒有在其 output 中包含--use-temp-file ,AFAICS,絕對不在 3.1.4 中。

所以看起來你使用的不是官方 3.1.4 版本。 你的第一個問題的答案是使用官方資源。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM