MSVC2013 中的 Qt 一切正常,除了一件事:当设置本地调试环境时,找不到 DLL,因为 $(QTDIR) 未定义。
我的调试环境设置:
PATH=$(QTDIR)\bin%3b$(PATH)
我的.user 文件:
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<LocalDebuggerEnvironment>PATH=$(QTDIR)\bin%3b$(PATH)</LocalDebuggerEnvironment>
<QTDIR>C:\Qt\Qt5.4.1\5.4\msvc2013</QTDIR>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LocalDebuggerEnvironment>PATH="$(QTDIR)\bin%3b$(PATH)</LocalDebuggerEnvironment>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LocalDebuggerEnvironment>PATH=$(QTDIR)\bin%3b"$(QTDIR)\bin%3b$(PATH)</LocalDebuggerEnvironment>
<QTDIR>C:\Qt\Qt5.4.1\5.4\msvc2013</QTDIR>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LocalDebuggerEnvironment>PATH="$(QTDIR)\bin%3b$(PATH)</LocalDebuggerEnvironment>
</PropertyGroup>
</Project>
我不知道为什么,但 $(QTDIR) 变量不可用于 LocalDebuggerEnvironment。
它适用于以下调试环境设置:
PATH=C:\Qt\Qt5.4.1\5.4\msvc2013\bin%3b$(PATH)
是否可以让 Visual Studio 正确处理这个问题,还是我必须手动输入路径?
最佳答案
Visual Studio 似乎从上到下解析这些行,因此您的代码...
<LocalDebuggerEnvironment>PATH=$(QTDIR)\bin%3b$(PATH)</LocalDebuggerEnvironment>
<QTDIR>C:\Qt\Qt5.4.1\5.4\msvc2013</QTDIR>
...变量$(QTDIR)在第二行定义,不能在第一行使用。
只需切换顺序,以便在使用变量之前定义变量:
<QTDIR>C:\Qt\Qt5.4.1\5.4\msvc2013</QTDIR>
<LocalDebuggerEnvironment>PATH=$(QTDIR)\bin%3b$(PATH)</LocalDebuggerEnvironment>
注意:Visual Studio 仅在启动时读取 .user 文件,因此您需要在编辑文件后(重新)启动 Visual Studio。
关于visual-studio-2013 - Visual Studio 2013 和 Qt5 : QTDIR set too late,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28702916/