问题标签 [windres]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
1508 浏览

c - gcc:致命错误:使用 Code::Blocks 编译和链接资源文件时没有输入文件

我厌倦了糟糕的非工作或不必要的混淆用户敌对工具和程序。

我正在使用 Code::Blocks 设置为使用 Cygwin GCC(编译器工具链目录:)进行编译C:\msys64\usr,我在我的项目中添加了一个.rc文件,然后当我编译时我得到了这个:

=== 构建:测试中的调试(编译器:GNU GCC 编译器)===

用户Al3Desktopresource.rc || 没有这样的文件或目录

警告:最后一个输入文件后的“-x c”无效

错误:没有输入文件

为什么要从资源文件路径中删除反斜杠?从这张图也可以看出,资源文件的文件路径不包含任何空格或奇怪的字符,windres.exe也不包含,它位于C:\msys64\usr\bin


是什么导致了这个问题,我该如何解决?

0 投票
0 回答
1020 浏览

git - cmake 失败,路径在分层组织中有空格

在将每个目录 CMakeList.txt 转到分层组织时,我遇到了路径问题。

我从 git-bash 启动一切。

我只能使用安装在有空格的目录中的便携式应用程序(原文如此!)。

该项目是这样组织的:

当我使用此 CMakeLists.txt 文件cmake -G "Unix Makefiles" ..在子目录中运行时,它工作正常:app/build

但是,当我尝试使构建系统分层并在父目录中创建一个非常简单的 CMakeLists.txt 时:

编译资源文件失败:

当我查看如何使用 using 调用流程时,make --debug=j有效的流程和失败的流程之间存在很大差异。

失败的那个:

一个有效的:

用于编译资源文件的CreateProcess调用windres是完全不同的。

我不明白为什么它失败只是因为windres它适用于g++.

如果有人可以帮助我提供在哪里看的线索,那就太好了。

谢谢阅读。

0 投票
1 回答
1099 浏览

c++ - windres 致命错误:将输出写入时:参数无效

我试图让 windres 从 Visual Studio 编译资源文件。我正确地将所有文件(包括一个文件)转换为 ANSI,但每次尝试编译它时仍然出现此错误:

这是相应文件的源代码的开头:

编辑:请注意,我用十六进制编辑器查看了 .rc 文件,所有换行符都很好,转换为 ANSI 工作正常

编辑 2: .rc 文件的路径没有任何空格或任何应该与 windres 搞混的东西:

编辑 3: windows.h 文件在我的包含目录中,我手动检查。另外,.cpp 文件使用它并且它没有编译失败。

编辑 4:删除包含 windows.h 文件的行不会改变任何内容,它仍然会给出相同的错误。

编辑 5:直接按字符串而不是按名称命名每个类并消除所有错误消息。

0 投票
0 回答
181 浏览

maven - Launch4J,Windres 预处理失败

使用launch4j的plugin-maven将jar转换为exe时出现错误。

此错误:net.sf.launch4j.ExecException: Exec failed (1). 当我看到日志时,我看到此错误:...windres.exe: preprocessing failed.

所以,我已经下载了 Launch4J 包,并且我已经使用了具有相同命令(详细)的 windres:

我用最小的配置(test\rc)编写了一个 rc 文件。

结果 :

同样的错误。我使用 Windows 10 运行此命令。但是当我使用 Windows 7 时......没有错误,输出被创建。

GNU windres 可能是 Windows 10 内的预处理器类型有问题?

任何想法 ?谢谢。

0 投票
1 回答
272 浏览

makefile - Makefile 与 Windows 资源文件的循环依赖关系

在运行 Makefile 时,有几个关于循环依赖关系下降的问题(这里这里),但是,我仍然对它们发生的原因感到有些困惑。

例如,我正在尝试编译一个包含资源文件的 Win32 GUI 程序(来自本教程)。这些资源文件通过windres命令编译为目标文件,因此它们可以链接到最终的可执行文件(如此处所述):

该命令$(patsubst %.rc,%.rc.o,$(wildcard *.rc))获取所有以结尾的资源文件.rc.o在它们上添加扩展名(例如resource.rc.o)。

当我运行它时,一切似乎都正常工作,并且我得到了一个工作可执行文件,但是,Make 输出以下内容:

这种循环依赖的发生是因为我在技术上有两个.o规则吗?换句话说,我该如何纠正这种循环依赖?


编辑1:

我尝试按照@MadScientist所说的进行操作,但是,这仍然与 Make 产生了循环依赖关系。经过一番谷歌搜索后,我发现了以下页面。在最底部有一个标题为“循环文件依赖项”的部分。这让我想到了 Make 的输出:

看起来是rc后缀创建了这种依赖关系——即使它不是输出目标文件的文件扩展名的一部分(即file.rc.o)。如果我将输出文件后缀更改为.res.o,则循环依赖将完全消失:

这引发了一个非常相似的问题,如果我想使用前面的后缀.rc.o,你将如何完成这个?可能吗?

编辑2:

@MadScientist建议使用match-anything 规则完美地解决了这个问题。这现在允许我使用.rc.o后缀结尾。请参阅下面@MadScientist的更新答案。

0 投票
1 回答
1054 浏览

windows - 如何在mingw下从“resource.rc”生成“resource.h”

上下文 - 在 Windows 7 环境中使用 mingw64/gcc/windres 来编译和构建一些简单的 Windows 实用程序。

有没有办法让windres(或其他一些实用程序?)自动生成一个头文件,其中包含我在.rc文件中定义的所有资源ID?

例如,我认为 Visual Studio 会自动从您的“resource.rc”生成匹配的“resource.h”,因此您不必手动定义所有 ID 号。在 mingw 环境中有没有办法做到这一点?

0 投票
1 回答
127 浏览

c++ - 为什么不显示版本信息

所以当我遇到 Windows 资源文件 (.rc) 时,我正在开发我的 C++ 应用程序,我的应用程序是葡萄牙语的,所以我这样写我的文件:

由于某种原因,我不知道什么时候用 g++ 和 windres 编译它,我得到了图标,但没有显示版本信息。
如果你能帮助我,请把这个

0 投票
0 回答
67 浏览

rc - 运行 Winres 时出现语法错误,尝试设置可执行图标

在终端中运行([文件名]只是一个占位符])windres -v -i [filename].rc -o [filename].o时,我收到以下消息:

gcc -E -xc -DRC_INVOKED [filename].rc'

Using popen to read preprocessor output

windres.exe: [filename].rc:1: syntax error

我不明白为什么会出现语法错误。我正在尝试为这样的可执行文件设置一个图标https://wiki.haskell.org/Setting_an_executable_icon,但不要让它工作。解决方案是什么?

0 投票
1 回答
175 浏览

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

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

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

错误消息在行

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

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

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

  • 有什么办法可以避免这种情况吗?
  • 那面旗帜是干什么用的?
0 投票
0 回答
60 浏览

c++ - 尝试使用 windres 编译 .rc 文件时出现问题

我正在使用 raylib-cpp 用 C++ 制作小“游戏”,我想将 .exe 图标更改为另一个。为此,我需要将 .rc 文件重新编译为“.rc.data”文件。我看到我需要使用windres来重新编译这个文件。

我正在使用这个命令:windres -i raylib.rc -o raylib.rc.data,它显示这个错误消息:windres: preprocessing failed.

我不知道它到底是什么意思,但我知道我的电脑正在使用 gcc 编译器。我该如何解决?

这是代码中的图像和错误(第二行是说“系统找不到指定的路径”,cmd显示给所有东西,即使它刚刚启动,我也不知道是不是错误)

在此处输入图像描述