visual-studio - 从 bash 脚本调用 vcvars

标签 visual-studio bash batch-file

我需要从同一个 bash 脚本 (msys) 中调用 vcvars32.bat 和 vcvars64.bat,它构建了我的应用程序的不同版本。

问题是,即使我能够使用 cmd.exe 命令调用批处理文件,一旦它返回,显然没有设置 Visual Studio 变量。

我无法从调用 bash 脚本的外部批处理文件(如 msys.bat)调用 vcvars,因为我需要在同一个脚本中按顺序调用它们。

那么,有什么方法可以调用 vcvars 以便在运行时正确设置 bash 脚本中的变量吗?

最佳答案

解决此问题的一种方法是从 vcvars 环境中运行命令,而不是尝试将其导出回 bash 端。这是我们为项目选择的方法。

主要问题是 vcvars*.bat 不接受在环境中执行的命令,因此需要对 cmd 进行一些技巧。因此,我提出了一个名为 vcvars_env_run.sh 的简单 Bash 脚本,它接受任意参数并将它们转发到调用了 vcvars64.bat 的 cmd.exe。大部分工作是弄清楚如何正确转发引用的参数,以及 &&、||、返回码等。

我已将脚本和一些示例上传到 https://github.com/kromain/wsl-utils

您可能需要稍微调整一下以在 vcvars32.batvcvars64.bat 之间切换,但希望它对您尝试做的事情有所帮助。

关于visual-studio - 从 bash 脚本调用 vcvars,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15172470/

相关文章:

linux - 在 1000 台远程服务器上执行多个命令?

linux - bash : no such file or directory when adding gradle to path on linux

parsing - 需要帮助编写批处理文件来读取带有空分隔符的 MS Access .ldb 锁定文件

c++ - 在 visual studio 中使用 xtensor 时的尖括号 <> 问题

c# - 如何解决错误 : Could not copy . .. 超过重试次数 10。失败。 - 对比 2017

visual-studio - 阻止从 Visual Studio 部署到 Azure 函数应用程序

bash - 如何在 bash 中循环遍历 jq 唯一数组?

windows - 如何使用 'findstr' 匹配 IP 地址?或者在 Windows 中的任何其他批处理方法

batch-file - 批处理文件,创建编号列表

c# - 使用 Visual Studio 2013 构建 C/C++ DLL 并将其交付到 C# 应用程序中