【问题标题】:Choose a certain version of Visual Studio's command line toolkit and compile files against a certain version of a C++ run-time environment选择特定版本的 Visual Studio 命令行工具包并针对特定版本的 C++ 运行时环境编译文件
【发布时间】:2018-08-14 16:55:38
【问题描述】:

我正在使用 Visual Studio 2017。尝试使用特定版本的 C++ 工具包编译包,并针对特定版本编译 C++ 运行时环境。

在我的情况下,这意味着针对最新 c++ 运行时环境库的最新工具包。

我该如何做到这一点?我尝试使用/std:c++17/std:latest 但这会导致针对vc140.dll 编译的构建。

cl.exelink.exe 的文档都没有给出任何提示。

有什么想法吗?谢谢。

【问题讨论】:

  • “工具包”没有任何意义。它类似于“工具集”。构建工具集 cl.exe 是其中的一部分。 vc141.dll 没有任何意义。它类似于 vcruntime140.dll,该DLL 没有141 版本。他们没有为 VS2017 创建该运行时 DLL 的新版本,是的。没有迹象表明您有问题。
  • 我的问题确实令人困惑。谢谢你指出。我修改了我的问题。我的意思是如何选择要编译的 c++ 标准库的版本。由于已经提出了答案,我已经离开了关于工具包版本的部分。

标签: c++ visual-studio visual-studio-2017 cl


【解决方案1】:

在项目属性 UI 中,您可以在“常规”页面上设置平台工具集。

对于 v140,生成的命令行开始:

C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\CL.exe

C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\link.exe

但是对于 v141 他们开始:-

C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.12.25827\bin\HostX86\x86\CL.exe

C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.12.25827\bin\HostX86\x86\link.exe

如果您将构建输出设置为诊断(通过工具->选项->构建和运行),您可以自己阅读命令行。

【讨论】:

  • 这是我的错误。由于时间锁定,目前无法修改。
  • 我的问题本身也很混乱;这与工具包的版本无关;但所需的 c++ 运行时环境的版本。
  • @Vega4 请不要因为未使用您未在问题中提供的信息而对答案投反对票。
  • 找到一个 gui 设置做你想做的事情并查看它对命令行做了什么的一般技术可能仍然有用,在这种情况下,我们看到它实际上改变了 cl 的位置。 exe被调用。该文件夹恰好包含一个 vcruntime140.dll(并且没有 141)
【解决方案2】:

您可以使用下拉菜单在此处设置它们

(project properties)
(configuration properties)
(general)
(platform toolset)

【讨论】:

  • 问题是关于没有任何项目文件的命令行构建。
  • 有趣。我看到了歧义。在问题真正关闭之前,您应该在问题中说清楚。
猜你喜欢
  • 2015-08-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-25
  • 1970-01-01
  • 2022-11-10
相关资源
最近更新 更多