Simd 库编译失败

Simd library compilation fails

我正在尝试在 Visual Studio 2017 年构建 Simd 库。 https://github.com/ermig1979/Simd 我从 /prj/vs2017w 打开项目。 我只是将配置类型从动态库修改为静态库。 我取消了文件 SimdConfig.h

#define SIMD_STATIC 的注释

编译后我得到这个错误:

error MSB3073: The command "C:\Users\fullPath\Simd\prj\vs2017w\..\cmd\GetVersion.cmd
error MSB3073: :VCEnd" exited with code 9009

点击报错问题就出在这里:

<Target Name="PreBuildEvent" Condition="'$(PreBuildEventUseInBuild)'!='false'">
    <Message Text="Description: %(PreBuildEvent.Message)" Condition="'%(PreBuildEvent.Message)' != '' and '%(PreBuildEvent.Command)' != ''"/>
    <Exec Command="%(PreBuildEvent.Command)$(_BuildSuffix)" Condition="'%(PreBuildEvent.Command)' != ''"/>
  </Target>

我尝试重新加载项目等,但没有任何效果。 也尝试使用来自 /prj/vs2015 的 VS2015 但同样的问题。

我只想在我的项目的每个配置(x64/x86 调试和发布)中使用 Simd.lib。

有什么解决办法吗?感谢帮助

我解决了这个问题。通过查看输出,我注意到当路径中有 space 时脚本停止......所以他无权访问 .cmd 文件。 谢谢

Simd 库的 Visual Studio 项目文件中存在错误:

  <Command>$(ProjectDir)\..\cmd\GetVersion.cmd</Command>

如果项目目录有 space 则在调用预构建脚本期间会出错。这个错误的解决方法很简单——在工程目录下加上引号即可:

  <Command>"$(ProjectDir)"\..\cmd\GetVersion.cmd</Command>