Qt4.8 opensource 、 Mingw 、 Windows 环境下 编译Qt自带的examples\activeqt目录下的例子发现编译错误。
好不容易找到了一个问题的解决办法
原文 http://blog.csdn.net/li_hai/article/details/7222440
曾经在Qt sdk 1.1.4下写过使用
excel = new QAxObject("Excel.Application");方法操作excel文件的程序,安装qt 4.8.0后这个程序不能正常编译了,去安装目录C:\Qt\4.8.0\lib下看,里面没有ActiveQt所需的库文件,用Qt Creator 2.4 打开源代码目录C:\Qt\4.8.0\src\activeqt中pro文件,进行debug和release编译,把生成的相应库文件.a拷贝到C:\Qt\4.8.0\lib目录,重新编译examples\activeqt,出现大片类似undefined reference to `IID_IOleObject'
解决办法:在container.pro文件的 CONFIG += qt_install_headers 添加create_prl,成为CONFIG += qt_install_headers create_prl,使编译产生静态库的prl文件 QAxContainer.prl QAxContainerd.prl (debug版与release版),检查prl文件中内容是否为:
QMAKE_PRL_BUILD_DIR = C:/Qt/4.8.0/src/activeqt/container/ (参考lib目录中其他prl文件)把prl文件也拷贝到lib目录下。把examples\activeqt 工程中的pro.user文件和影子目录删除重新bulid,错误消除,程序正常运行起来了prl文件相关知识介绍:http://blog.csdn.net/dbzhang800/article/details/6348432*.prl
l 这个东西容易理解,链接(link)的首字符。主要和生成与使用静态库密切相关(动态库也可以有该文件,去Qt安装目录下的lib目录下看看即可)。
- 生成静态库时,我们需要使用下列配置(进而生成和库文件同名的 *.prl 文件)
CONFIG += create_prl
- 当工程的TEMPLATE为app时,会自动添加如下指令(找库文件的时候,会尝试找相应的 *.prl 文件)
CONFIG += link_pri
附:导出API使用文档的方法
COM是个自描述的结构,任何第三方软件是可以把这种描述化信息自动导出来的。Qt有方法可以自动导出来的,参考如下代码
QAxWidget*word=newQAxWidget("Word.Application",0,Qt::MSWindowsOwnDC);
QStringdoc=word->generateDocumentation();
QFileoutFile("c:/Application.html");
outFile.open(QIODevice::WriteOnly|QIODevice::Append);
QTextStreamts(&outFile);
ts<<doc<<endl;导出后你会发现是一个非常好的HTML格式的帮助问题,里面对每一个方法都有调用的详细描述。参考帮助后就能开始自己调用了,
版权声明:本文为博主原创文章,未经博主允许不得转载。