我想在Visual Studio 2010中使用Qt编译项目。 我已经构建了所有必备库并将它们链接到项目属性中。
我还使用以下命令从project.qrc文件(rcc)中创建了.cpp文件:
rcc project.qrc -name project -o qrc_project.cpp
按照http://www.qtcentre.org/archive/index.php/t-3425.html的说明进行操作。
使用以下行生成project.coo文件:
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文件。 虽然,我得到以下错误:
错误2611错误LNK2019:未解析的外部符号“int __cdecl qInitResources_project(void)“(?qInitResources_project @@ YAHXZ) 在函数main D:\ usr \ Windows \ main.obj project
中引用
我对rcc做错了吗?有人可以帮忙吗?
答案 0 :(得分:1)
我通过生成.rcc文件和.cpp文件解决了我的问题,都使用项目名称而不是" qrc _"在它的开头。我还在我的项目中链接了两个文件。
似乎编译器找不到合适的文件,这就是我遇到链接错误的原因。
我用来生成上述文件的命令是:
rcc -binary <path_to_qrc_file>.qrc -o <path_and_filename>.rcc
rcc <path_to_qrc_file>.qrc -name <project_name> -o <path_and_filename>.cpp
答案 1 :(得分:0)
如果SO上没有任何内容可供您使用,我找到了一个非常简单的解决方法:
在VS中,您可以简单地将资源(图像或图标)放在库qrc文件中,而不是直接放在主项目qrc文件中。然后,在库项目中,您可以使用主项目中的路径引用图像,甚至无需调用QT_INIT_RESOURCE。
我认为这不是一个好的做法,但请记下在线尝试所有解决方案但仍无法正常工作的人。
答案 2 :(得分:0)
对于使用 CMake
的人:
您应该启用 AUTORCC
以自动编译 *.qrc
文件。
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)