gpt4 book ai didi

c++ - 如何从 system() 使用 Visual Studio 2012 命令行工具

转载 作者:行者123 更新时间:2023-11-28 03:05:47 26 4
gpt4 key购买 nike

我正在尝试使用 msbuild 和 Visual Studio 命令行工具中可用但 Windows 命令行工具中不可用的其他命令,从另一个可视化 C++ 程序 (project2) 编译和运行一个可视化 C++ 程序 (project1)。如果我在 visual studio 命令行工具中运行它,一切正常。例如,我可以使用 msbuild 进行构建,它可以按我想要的方式工作。当我尝试使用 system() 在我的 C++ 程序中运行相同的命令时,系统调用似乎使用 Windows 命令行,因此找不到任何命令(本例中为 msbuild)。我是在 Windows 上使用 system() 的新手(尽管我在使用 Linux 方面有丰富的经验)。有什么方法可以让我的 C++ 程序在调用系统时使用 Visual Studio 命令行环境(而不是 Windows 命令行环境)?手动使用命令窗口不是一个选项。我需要在 project1 中编译和测试一系列 200-300 个不同版本的程序。这就是我写 program2 的原因

最佳答案

让 Visual Studio 从命令行构建的关键是设置适当的环境。您可能安装了多个不同的 VS 版本,因此您需要一种方法来指定要使用哪个版本。执行此操作的最简单方法可能是具有间接级别,您可以在其中生成命令列表以设置所需的环境并将它们写入批处理文件,然后调用 system()运行它。

如果您查看 <visual studio>\vc\bin目录然后你会找到一个文件vcvars32.bat .这为特定工具集设置环境带来了很多魔力。我认为您可以生成这样的批处理文件:

call path\to\visualstudio\vc\bin\vcvars32.bat

msbuild myproject

请注意,您需要 call从一个批处理文件调用另一个批处理文件的语法,否则会导致 shell 不返回。

关于c++ - 如何从 system() 使用 Visual Studio 2012 命令行工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19772641/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com