我刚刚安装了 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/