我想在我的新项目中使用 Qt。我的目标编译器(VS2010 64 位)的安装程序不存在。
我正在使用带有 Qt 5.1.1 的 Windows 7 64 位。
我的一位同事也计划使用 Qt,并设法为我的目标编译器(他也使用)编译它。他已经在某个目录中构建了它,比如 DirA。他慷慨地给了我一份他的整个 Qt SDK 构建(二进制文件、示例、头文件和所有内容)的副本,我将它复制到我机器上的 DirB。
我在 DirB 中需要它,因为这是我所有 3rd 方库的安装位置,而且我的 CMake 脚本知道如何找到它们。我还将 Qt bin 文件夹添加到我的路径中。
问题接踵而至。出于某种原因,Qt 二进制文件在其中硬编码了安装路径(在本例中为构建路径)。因此,即使 Qt bin 文件夹在我的路径中(因此找到了 DLL),Qt 的 DLL 正在寻找 Windows“插件”的错误位置。他们正在寻找我的机器上不存在的 DirA。
因此,根据我的研究发现,使用指定安装路径根目录的 qt.conf 文件应该是可行的方法。我在我的 Qt bin 目录中添加了一个,现在 Qt 二进制文件(助手、qmake 等)可以运行。
但现在我建立了一个例子。构建良好。运行 exe,加载 Qt DLL,然后由于找不到插件目录而崩溃。
我的同事和我发现似乎可行的解决方法是将我的 qt.conf 文件复制到我的 exe 所在的目录中。之后,exe 运行。
但这似乎不对。我的 exe 可以找到 Qt DLL,但它加载的 Qt DLL 找不到 qt.conf。他们不知道查看自己的包含文件夹。我的工作目录(我的 exe 目录)中必须有 qt.conf 才能找到和使用它。
有谁知道为什么会发生这种情况,并且知道一种方法让我不被迫在我的 exe 目录中有一个 qt.conf 文件?我不能接受这需要重建 Qt。一定有别的办法。