我只是安装Qt 4.7.2,我试图使用QLibraryInfo
类。 我的问题是, QLibraryInfo::location(QLibraryInfo::PrefixPath)
总是返回C:\work3\qt-4.7-vs2010-x86
,这在我的机器上不存在(应该是C:\Qt\qt-4.7.2
)。
根据文档,我尝试创build一个qt.conf
文件,旁边我的程序,但问题仍然存在。 这是它的内容:
[Paths] Prefix=C:/Qt/qt-4.7.2/
现在我用了一个符号链接来绕过这个问题,但是我想知道是否有一个合适的解决scheme。 谢谢。
编辑这里是使用QLibraryInfo
的程序:
int main(int argc, char ** argv) { QCoreApplication app(argc, argv); //< added after Piotr's suggestion QFile outf("qtdirs.out"); if (!outf.open(QIODevice::WriteOnly|QIODevice::Truncate|QIODevice::Text)) return 1; QTextStream out(&outf); out << QLibraryInfo::location(QLibraryInfo::PrefixPath) << '\n'; out << QLibraryInfo::location(QLibraryInfo::HeadersPath) << '\n'; ... }
QCoreApplication必须被创建,因为这是QLibraryInfo如何能够确定加载qt.conf文件的应用程序目录( QCoreApplication::applicationDirPath()
)。 或者,qt.conf可以作为资源内置到应用程序中,路径为“:/qt/etc/qt.conf”。