将图标添加到QT5会导致链接器错误

Adding Icon to QT5 causes linker error

本文关键字:链接 错误 图标 添加 QT5      更新时间:2023-10-16

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

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

LNK1123:转换为COFF期间失败:文件无效或损坏

对其进行一些搜索只会找到那些试图在没有安装VS2010的情况下进行编译的人,但这里的情况并非如此,因为它在没有图标的情况下安装并编译得很好。

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

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

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

RC_FILE = WindowsResource.rc

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

IDI_ICON1 ICON DISCARDABLE "MyIcon.ico"

现在,将你想要的图标放在与你的Qt项目文件相同的文件夹中,并将其命名为MyIcon.ico,只要它在你创建的windows资源文件中被正确引用,你就可以随意命名。

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

编辑:我使用了Visual C++2013,它很有效。我引用了这篇文章http://support.microsoft.com/kb/2757355

原因:将Visual Studio 2012与Visual Studio 2010 RTM并排安装(SXS)后,或在带有Visual Studio 2010的计算机上安装.Net Framework 4.5后,可能会出现此错误。

解决方案:若要解决此链接错误,请将Visual Studio 2010 RTM升级到VS 2010 SP1。升级到VS 2010 SP1解决了依赖性故障,VC++2010项目构建时没有LNK1123错误。

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