【问题标题】:Adding Icon to QT5 causes linker error将图标添加到 QT5 会导致链接器错误
【发布时间】:2014-09-20 20:40:58
【问题描述】:

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

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

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

对它进行一些搜索只会发现有人在没有安装 VS2010 的情况下尝试编译,但这里的情况并非如此,因为它已安装并且没有图标就可以正常编译。

任何建议将不胜感激。

【问题讨论】:

    标签: c++ qt icons qt5


    【解决方案1】:

    以下解决方案适用于 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 2010 RTM 并排安装 Visual Studio 2012 (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 是否会解决问题,因为您在没有图标的情况下可以正常编译。

    【讨论】:

    • 不幸的是,这正是我正在做的,这会导致链接错误。没有这个,应用程序编译得很好。
    • 感谢编辑,早上第一件事就是检查解决方案。非常感谢:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-04
    • 2020-10-02
    • 1970-01-01
    • 1970-01-01
    • 2016-08-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多