在VS 2010中使用自定义构建事件

时间:2013-08-09 20:25:41

标签: visual-studio-2010 visual-c++

我正在创建一个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.

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

0 个答案:

没有答案