无法从命令行 VS2017 运行 msbuild for C++
Unable to run msbuild for C++ from the command line VS2017
我有一个只存在于Visual Studio 2017中的项目。这是一个C++dll,到目前为止,我从Visual Studio GUI中构建它没有问题。但是现在我正在尝试设置自动化,以便在命令行上构建项目并将输出文件上传到所需位置。这是我到目前为止尝试过的(在全新的命令提示符中(:
cd C:Program Files (x86)Microsoft Visual Studio 14.0VC>
vcvarsall amd64
cd C:UsersmedevelopmentMyProject
msbuild MyProject.slnl (or msbuild MyProjectMyProject.vcxproj)
这给了我错误输出
C:Program Files (x86)MSBuildMicrosoft.Cppv4.0v140Microsoft.Cpp.Platform.targets(57,5):
error MSB8020: The build tools for v141 (Platform Toolset = 'v141') cannot be found. To build
using the v141 build tools, please install v141 build tools. Alternatively, you
may upgrade to the current Visual Studio tools by selecting the Project menu or right-cli
ck the solution, and then selecting "Retarget solution".
[C:UsersdevdevelopmentMetaRemeMetaRemeMetaReme.vcxproj]
让我重申一下,我已经在Visual Studio 2017中成功构建了针对v141工具集的内容,只是在命令行上遇到了麻烦。在我的Visual Studio Installer应用程序中,我检查了VC++ 2017 v141工具集。我查看了文件系统,C:Program Files (x86)MSBuildMicrosoft.Cppv4.0
内没有v141
文件夹。
谢谢!
谢谢大家!我遵循 https://learn.microsoft.com/en-us/cpp/build/building-on-the-command-line 说"默认情况下,这些工具安装在驱动器:\程序文件(x86(\Microsoft Visual Studio版本\VC\bin."中。显然这些文档已经过时了...我能够让它使用以下命令工作
cd "C:Program Files (x86)Microsoft Visual Studio2017CommunityVCAuxiliaryBuild"
vcvars64
cd "C:UsersmedevelopmentMyProject"
msbuild MyProject.sln
它在上述文章的段落的第一部分说:
在Visual Studio2017中,它们位于Visual Studio安装目录的VC\Auxiliary\Build子目录中。在 Visual Studio 2015 中,它们位于安装目录的 VC、VC\bin 或 VC\bin\architectures 子目录中,其中 architecture 是本机或交叉编译器选项之一。
当你使用Visual Studio 2017时,它们应该在VC\Auxiliary\Build中,就像你发现的那样。
查找正确.bat文件的另一种方法是通过同一篇文章中提到的命令提示符快捷方式。首先通过展开开始>Visual Studio Year找到它们,右键单击并找到它们的位置。然后检查他们指向的位置。
- "error: no matching function for call to"构造函数错误
- 表示"accepting anything for this template argument" C++概念的通配符
- 如何在C++中从两个单独的for循环中添加两个数组
- 在Linux for Windows上编译C++代码时出错
- 调用专用模板时出错"no matching function for call to [...]"
- 为什么我的for循环不能正确获取argv
- 为什么我不能在 FOR LOOP 中使用 i/10,C++?
- Arduino:for/while/if在void setup()或void loop()之前?——错误:之前需要不合格
- 在基于范围的for循环中使用结构化绑定声明
- 通过for循环使用用户输入填充列表
- 使用for循环检查数组中的重复项
- 在for循环中使用auto vs decltype(vec.size())来处理字符串的向量
- 为什么 const std::p air<K,V>& 在 std::map 上基于范围的 for 循环不起作用?
- 正在使用for循环创建QScatterSerie
- Python中的for循环与C++有何不同
- std::memory_order for std::atomic:<T>:wait
- 在更改for循环的第三部分后,未使用for循环结果
- 在 for 循环中查找问题时遇到困难
- 嵌套for循环C++的问题(初学者)
- 无法从命令行 VS2017 运行 msbuild for C++