我已经安装了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';
...
}
答案 0 :(得分:2)
必须创建QCoreApplication,因为这是QLibraryInfo能够确定从中加载qt.conf文件的应用程序目录(QCoreApplication::applicationDirPath()
)的方式。或者,可以将qt.conf作为资源构建到应用程序中,路径为“:/qt/etc/qt.conf”。