c++ - QT5添加Icon导致链接器错误

标签 c++ qt icons qt5

我一直在努力向我的 QT 应用程序添加图标。现在的问题是不能让它在应用程序本身中工作(图标在任务栏和应用程序窗口的左上角都显示正常)。问题出在 Windows 资源管理器上。

现在我找到了一些解决方案,它们声明要么将 .rc 文件添加到 .pro 文件,要么使用 RC_ICONS。 但是这两种实现都会导致链接器错误:

LNK1123: failure during conversion to COFF: file invalid or corrupt

对此进行一些搜索只会发现有人在没有安装 VS2010 的情况下尝试编译,但这里不是这种情况,因为它在没有图标的情况下安装和编译良好。

如有任何建议,我们将不胜感激。

最佳答案

以下解决方案适用于 Visual C++ 2013 和 MinGW,但这是特定于 Windows 的。

将以下行添加到您的 Qt 项目文件中。

RC_FILE = WindowsResource.rc

现在在你的Qt项目文件所在的文件夹中创建一个文本文件,并命名为WindowsResource.rc,你可以随意命名它,只要它在Qt项目文件中被正确引用即可。在记事本中打开它并插入以下行。

IDI_ICON1 图标可丢弃“MyIcon.ico”

现在把你想要的图标放在和你的Qt工程文件相同的文件夹中,并命名为MyIcon.ico,你可以随便命名,只要它在你创建的windows资源文件中被正确引用即可。

运行 qmake 并重建您的应用程序,.exe 文件现在应该显示在 Windows 资源管理器中并带有新图标。

编辑: 我使用了 Visual C++ 2013,它运行良好。我在 http://support.microsoft.com/kb/2757355 引用了这篇文章

Cause: This error can appear after installing Visual Studio 2012 side-by-side (SXS) with Visual Studio 2010 RTM or after installing .Net Framework 4.5 on a machine with Visual Studio 2010.

Resolution: To resolve this link error, upgrade Visual Studio 2010 RTM to VS 2010 SP1. Upgrading to VS 2010 SP1 resolves the dependency failure and the VC++ 2010 project builds with no LNK1123 error.

如果您使用的是 Visual C++ 2010,那么我建议您确保安装了 Service Pack 1,但我不确定安装 SP1 是否会解决问题,因为您在没有图标的情况下编译正常。

关于c++ - QT5添加Icon导致链接器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25953106/

相关文章:

c++ - KIO Trash 驱动器特定的垃圾文件夹

flutter - flutter 中的内置图标位于何处(flutter 文件夹中的默认位置)

user-interface - 丰富的UI图标动画是如何做出来的?

c++ - DoxyGen 忽略函数

c++ - 开关/外壳内的开关/外壳

c++ - 用于成员变量无锁更新的环形分配器?

c++ - 在 Qt Creator 的 CMake 项目中添加 CMake 项目作为子项目

c++ - Mac OSX、Qt Creator 和 Google Test

iPhone Icon@2x.png 未在 Retina 显示屏中显示

c++ - 是否可以使用 try/catch 捕获段错误?