【问题标题】:error MSB4057: The target "v8" does not exist in the project错误 MSB4057:项目中不存在目标“v8”
【发布时间】:2015-11-11 17:56:35
【问题描述】:

我正在尝试使用官方的build scripts 并关注官方的Windows build instructions,将V8 构建为ArangoDB 的一部分。

所有 v8* 目标的编译都失败 (v8-build.bat):

msbuild All.sln /t:v8 /p:Configuration=Release /p:Platform=x64
msbuild All.sln /t:v8_libbase /p:Configuration=Release /p:Platform=x64
msbuild All.sln /t:v8_libplatform /p:Configuration=Release /p:Platform=x64

错误 MSB4057:项目中不存在目标“v8”。

如果我在 Visual Studio 中打开解决方案文件,它看起来像这样:

我可以在 VS 中构建 v8v8_libbasev8_libplatform

  • Windows 7 64 位
  • Visual Studio 2013 Ultimate
  • Cygwin 2.2.0
  • cmake 3.3.1

【问题讨论】:

    标签: visual-studio-2013 compiler-errors v8 arangodb msbuild-target


    【解决方案1】:

    在解决方案文件夹中指定目标/项目的正确方法是:

    msbuild all.sln /t:PATH\TO\PROJECT
    

    但在(tools)(gyp) 的情况下,这根本不可能,因为msbuild 无法处理目标参数/t 中的括号。

    所以要么删除( ) 并指定tools\gyp\v8 之类的路径,要么完全删除解决方案文件夹。如果解决方案是平坦的,/t:v8 将起作用。

    不幸的是,用括号包裹文件夹名称以及生成非平面 .sln 都在 gyp 中进行了硬编码,从而生成了我的 all.sln。没有控制是否创建解决方案文件夹的开关。如果已知 Visual Studio 的目标版本支持这种嵌套,它将创建它们。

    解决方法:在 gyp 中强制生成平面解决方案,请参阅
    https://github.com/arangodb/arangodb/commit/796d2d263db6271142d954c8c99b9dec0fbe75e9

    向 Microsoft/msbuild 和 Google/gyp 报告错误:

    @dothebart 和 this post 帮我解决了很多问题,谢谢!

    【讨论】:

      【解决方案2】:

      在VS2013中使用

      msbuild All.sln /p:Project=v8;Configuration=Release;Platform=x64
      

      【讨论】:

      • 我赶忙 - 它正在重建所有解决方案。
      • 我不确定这是否是一个选项。
      【解决方案3】:

      你可以跑

      set MSBuildEmitSolution=1
      msbuild All.sln /t:v8
      

      然后在生成的All.sln.metaproj 文件中搜索您要构建的所有项目的确切目标名称 (<Target Name="">)。 v8 可以有类似_tools_\_gyp_\v8 的名称。之后你就可以构建项目了

      msbuild All.sln /t:"_tools_\_gyp_\v8" /p:Configuration=Release /p:Platform=x64
      

      【讨论】:

      • 感谢这完美的帮助。我的问题是,如果您的项目名称为“hello.world”,则 msbuild 目标实际上是“hello_world”
      • 替换“.”用“_”也得到了我。也没有“构建”目标,只有“重建”。例如/t:Hello_World:重建
      猜你喜欢
      • 2016-12-23
      • 1970-01-01
      • 2019-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-06
      • 1970-01-01
      • 2022-08-11
      相关资源
      最近更新 更多