QLibraryInfo似乎没有加载qt.conf

我只是安装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”。