Q_INIT_RESOURCE的使用问题 谢谢
#include <QApplication>
#include "qmainwindow.h"
int main(int argc, char *argv[])
{
Q_INIT_RESOURCE(application);
QApplication app(argc, argv);
app.setOrganizationName("Trolltech");
app.setApplicationName("Application Example");
QMainWindow mainWin;
#if defined(Q_OS_SYMBIAN)
mainWin.showMaximized();
#else
mainWin.show();
#endif
return app.exec();
}
编译出错:
Error1error LNK2019: unresolved external symbol "int __cdecl qInitResources_application(void)" (?qInitResources_application@@YAHXZ) referenced in function _maintestCpp.objtestSln
请问这是什么错误??
[解决办法]
Q_INIT_RESOURCE 是个宏,展开了就是调用一个函数,你的资源编译进去后,应该会自动生成这个函数的。如果没有就当然会链接错误了。
[解决办法]
你可以去QT官网看看。
个人看法:Q_INIT_RESOURCE是Qt的资源机制(resource mechanism),它使程序在编译时将图片存储在.cpp文件中,运行时连接它。这要求你建立一个Qt资源文件***.qrc,在***.qrc中指定图片位置。编译时编译器将***.qrc中指定的图片以二进制数的形式存储到Qt自动建立的名为qrc_***.cpp的文件中,这里的***就是你建立***.qrc时的名字,而你在main()函数中使用Q_INIT_RESOURCE(name)宏时的name也必须是这个***。
所以,你这个程序里没有用到图片,根本没必要用(也不能用,因为找不到qrc_application这个文件)这句Q_INIT_RESOURCE(application);,将它删了就可以正常运行了。