c++ - QLibraryInfo 似乎没有加载 qt.conf

标签 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/

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

编辑 下面是使用 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”。

关于c++ - QLibraryInfo 似乎没有加载 qt.conf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5165935/

相关文章:

c++ - 传递重载成员函数的函数指针?

c++ - OpenGL 顶点数组对象使用

windows - EV 代码签名证书或 Microsoft Authenticode 的代码签名证书

C sha1 实现不适用于 Unix

c++ - 在其他源文件中没有公共(public)头文件访问功能

c++ - 将 Ctrl+C 事件发送到在 Windows 上使用 QProcess 启动的进程

qt - OpenCV、诺基亚和 Qt - 它会工作吗?

c++ - 移植到 Linux,还是为 MFC 编写包装器?

另一个类中的 C++\Qt 类对象

c++ - 如何将 .xcodeproj 转换为 .cpp