QLibraryInfo似乎没有加载qt.conf

时间:2011-03-02 10:10:09

标签: c++ windows qt

我已经安装了Qt 4.7.2并且我正在尝试使用QLibraryInfo类。我的问题是QLibraryInfo::location(QLibraryInfo::PrefixPath)始终返回C:\work3\qt-4.7-vs2010-x86,这在我的生成机器上不存在(应该是C:\Qt\qt-4.7.2)。

根据the documentation我试图在我的程序旁边创建一个qt.conf文件,但问题仍然存在。这是它的内容:

[Paths]
Prefix=C:/Qt/qt-4.7.2/

目前我使用符号链接来绕过这个问题,但我想知道是否有合适的解决方案。 感谢。

修改 这是使用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';

...
}

1 个答案:

答案 0 :(得分:2)

必须创建QCoreApplication,因为这是QLibraryInfo能够确定从中加载qt.conf文件的应用程序目录(QCoreApplication::applicationDirPath())的方式。或者,可以将qt.conf作为资源构建到应用程序中,路径为“:/qt/etc/qt.conf”。