【发布时间】:2014-11-27 03:50:21
【问题描述】:
自 VS2010 起,Microsoft Visual Studio 引入了 Platform Toolset 概念,将传统的全局 INCLUDE、LIB、PATH 设置封装在各种工具集中。我承认这是对灵活性的改进,但它不应该是一个让我们变得愚蠢的黑匣子。
现在我的问题是,当我将工具集应用于我的项目时,我如何知道生成的 INCLUDE、LIB、PATH 是什么。我认为手动分析这数百个 .targets 和 .props 文件(在C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120 中)以获得结果是不现实的。大多数时候,我们只需要结果。有什么简洁的方法可以实现吗?
==== 更新 ====
Stijn 为我提供了正确的答案。现在我可以从构建日志中看到 PATH= 、 LIB= 、 INCLUDE= ...。但是,一个小问题,LIB 和LIBPATH 有什么区别?
1>Using "SetEnv" task from assembly "C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.Build.CppTasks.Common.dll".
1>Task "SetEnv"
1> PATH=C:\VS2013\VC\bin;;C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools;C:\VS2013\Common7\Tools\bin;C:\VS2013\Common7\tools;C:\VS2013\Common7\ide;C:\Program Files (x86)\HTML Help Workshop;;C:\Program Files (x86)\MSBuild\12.0\bin\;C:\Windows\Microsoft.NET\Framework\v4.0.30319\;C:\Windows\SysWow64;;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.0\;;C:\Windows-Kits\8.1\bin\x86;C:\Windows-Kits\8.1\tools\tracing\x86
1>Done executing task "SetEnv".
1>Task "SetEnv"
1> LIB=C:\VS2013\VC\lib;C:\VS2013\VC\atlmfc\lib;;
1>Done executing task "SetEnv".
1>Task "SetEnv"
1> LIBPATH=C:\VS2013\VC\atlmfc\lib;C:\VS2013\VC\lib;
1>Done executing task "SetEnv".
1>Task "SetEnv"
1> INCLUDE=D:\u8vc\USBview\C++\;C:\VS2013\VC\include;C:\VS2013\VC\atlmfc\include;;
【问题讨论】:
标签: visual-studio-2013 msbuild