首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

Q_INIT_RESOURCE的使用有关问题 多谢

2012-03-24 
Q_INIT_RESOURCE的使用问题 谢谢#include QApplication#include qmainwindow.hint main(int argc, cha

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);,将它删了就可以正常运行了。

热点排行