Visual Studio 2013和Qt5:QTDIR设置为时已晚

6 path project-properties visual-studio-2013 qt5.4

一切都适用于MSVC2013中的Qt,除了一件事:找不到DLL,因为在设置了本地调试环境时没有定义$(QTDIR).

我的调试环境设置:

PATH=$(QTDIR)\bin%3b$(PATH)
Run Code Online (Sandbox Code Playgroud)

我的.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>
Run Code Online (Sandbox Code Playgroud)

我不知道为什么,但$(QTDIR)变量不适用于LocalDebuggerEnvironment.

它适用于以下调试环境设置:

PATH=C:\Qt\Qt5.4.1\5.4\msvc2013\bin%3b$(PATH)
Run Code Online (Sandbox Code Playgroud)

是否可以使Visual Studio正确处理此问题,还是必须手动输入路径?

Lic*_*ell 7

Visual Studio似乎从上到下解析了这些行,所以使用你的代码......

<LocalDebuggerEnvironment>PATH=$(QTDIR)\bin%3b$(PATH)</LocalDebuggerEnvironment>
<QTDIR>C:\Qt\Qt5.4.1\5.4\msvc2013</QTDIR>
Run Code Online (Sandbox Code Playgroud)

...变量$(QTDIR)在第二行中定义,不能在第一行中使用.

只需切换顺序,以便在使用变量之前定义变量:

<QTDIR>C:\Qt\Qt5.4.1\5.4\msvc2013</QTDIR>
<LocalDebuggerEnvironment>PATH=$(QTDIR)\bin%3b$(PATH)</LocalDebuggerEnvironment>
Run Code Online (Sandbox Code Playgroud)

注意:Visual Studio仅在启动时读取.user文件,因此您需要在编辑文件后(重新)启动Visual Studio.