1

我正在创建一个 Visual Studio 解决方案来包装 OCaml 的命令行部分。在标准的 OCaml make 文件中有以下目标:

version.h : ../VERSION
echo "#define OCAML_VERSION \"`sed -e 1q ../VERSION`\"" > version.h

我希望通过自定义构建事件来模拟。我已修改我的 vcproj 文件以包含以下行:

    <CustomBuildStep>
  <Command>C:\Windows\System32\sed.exe -e "1 s/^/#define OCAML_VERSION "  "$(SourceDir)VERSION"  &gt; "$(SourceDir)version.h"
  </Command>
  <Inputs>VERSION</Inputs>
  <Outputs>version.h;%(Outputs)</Outputs>
  <Message>Building version header file ....</Message>
</CustomBuildStep>

我确实在我的系统上安装了 sed(来自 unxutils),并且该命令确实可以从命令终端正常工作(自然在宏扩展之后)。但是,当我从 Visual Studio 中执行它时,我收到以下错误消息:

CustomBuildStep:
  Description: Building version header file ....
 'C:\Windows\System32\sed.exe' is not recognized as an internal or external command,
  operable program or batch file.

我在几个论坛上看到过这个问题,建议的解决方案是包含绝对路径(我做了)或将工作目录设置为可执行文件所在的位置。我能做些什么来让它发挥作用吗?

4

0 回答 0