首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Qt链接器错误LNK2019在qInitResources() - RCC上

Qt链接器错误LNK2019在qInitResources() - RCC上
EN

Stack Overflow用户
提问于 2016-12-16 13:55:00
回答 4查看 3.7K关注 0票数 4

我想在Visual 2010中用Qt编译一个项目。我已经构建了所有的先决条件库,并将它们链接到项目属性中。

我还使用以下命令从.cpp文件(rcc)创建了project.qrc文件:

代码语言:javascript
复制
rcc project.qrc -name project -o qrc_project.cpp

遵循http://www.qtcentre.org/archive/index.php/t-3425.html的指示。

project.coo文件由以下行生成:

代码语言:javascript
复制
    int QT_MANGLE_NAMESPACE(qInitResources_project)()
    {
        QT_PREPEND_NAMESPACE(qRegisterResourceData)
            (0x01, qt_resource_struct, qt_resource_name, qt_resource_data);
        return 1;
    }
    
    Q_CONSTRUCTOR_FUNCTION(QT_MANGLE_NAMESPACE(qInitResources_project))

我还在项目中包含了.cpp文件。虽然,我在下面得到了错误:

代码语言:javascript
复制
> Error 2611    error LNK2019: unresolved external symbol "int __cdecl
> qInitResources_project(void)" (?qInitResources_project@@YAHXZ)
> referenced in function main   D:\usr\Windows\main.obj project

我对rcc做错什么了吗?有人能帮忙吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-12-19 09:29:25

我通过生成一个.rcc文件和一个.cpp文件()来解决我的问题,这两个文件的名称都是项目,而不是开头的"qrc_“。我还链接了我的项目的两个文件。

编译器似乎找不到正确的文件,这就是为什么我有链接错误。

我用于生成上述文件的命令如下:

  1. rcc -binary <path_to_qrc_file>.qrc -o <path_and_filename>.rcc
  2. rcc <path_to_qrc_file>.qrc -name <project_name> -o <path_and_filename>.cpp
票数 2
EN

Stack Overflow用户

发布于 2021-01-13 02:52:15

对于使用CMake的人

您应该启用AUTORCC自动编译*.qrc文件。

代码语言:javascript
复制
add_executable(project project.cpp project.qrc)

// enable autorcc and automoc
set_target_properties(project PROPERTIES AUTOMOC TRUE)
set_target_properties(project PROPERTIES AUTORCC TRUE)
票数 2
EN

Stack Overflow用户

发布于 2017-12-15 06:32:57

我已经找到了一个非常琐碎的解决办法,如果没有对您有效的话:

在VS中,您可以简单地将资源(图像或图标)不放在库qrc文件中,而是直接放在主项目qrc文件中。然后,在库项目中,您可以使用主项目中的路径引用映像,甚至不需要调用QT_INIT_RESOURCE。

我认为这不是一个好的做法,但只要记录下来,谁尝试了所有的解决方案在网上,但仍然不起作用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41185978

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档