Visual studio 2013 错误MSB4057:目标“;v8";项目中不存在
我正在尝试构建V8,作为使用官方软件和遵循官方软件的一部分 编译所有v8*目标失败(Visual studio 2013 错误MSB4057:目标“;v8";项目中不存在,visual-studio-2013,compiler-errors,v8,arangodb,msbuild-target,Visual Studio 2013,Compiler Errors,V8,Arangodb,Msbuild Target,我正在尝试构建V8,作为使用官方软件和遵循官方软件的一部分 编译所有v8*目标失败(v8build.bat): 错误MSB4057:项目中不存在目标“v8” 如果我在Visual Studio中打开解决方案文件,它如下所示: 我可以在VS中构建v8,v8_libbase和v8_libplatform很好 Windows 7 64位 Visual Studio 2013终极版 Cygwin2.2.0 cmake 3.3.1 如果目标/项目位于解决方案文件夹中,则指定该目标/项目的正确方法是:
v8build.bat
):
错误MSB4057:项目中不存在目标“v8”
如果我在Visual Studio中打开解决方案文件,它如下所示:
我可以在VS中构建v8
,v8_libbase
和v8_libplatform
很好
- Windows 7 64位
- Visual Studio 2013终极版
- Cygwin2.2.0
- cmake 3.3.1
msbuild all.sln /t:PATH\TO\PROJECT
但是在(工具)
和(gyp)
的情况下,这是不可能的,因为msbuild
无法处理目标参数/t
中的括号
因此,要么删除()
并像tools\gyp\v8
那样指定路径,要么完全删除解决方案文件夹。如果解决方案是扁平的,/t:v8
将起作用
不幸的是,用括号包装文件夹名称以及生成non-flat.sln都是用gyp硬编码的,gyp生成了myall.sln
。没有控制是否创建解决方案文件夹的开关。如果已知VisualStudio的目标版本支持这种嵌套,它将创建它们
解决方法:强制在gyp中生成展开解决方案,请参见向Microsoft/msbuild和Google/gyp报告的错误:
msbuild All.sln /p:Project=v8;Configuration=Release;Platform=x64
你可以跑
set MSBuildEmitSolution=1
msbuild All.sln /t:v8
然后在生成的All.sln.metaproj
文件中搜索要生成的所有项目的确切目标名称(
)v8
可以有一个类似于\u tools\u\\u gyp\uv8
的名称。之后,您可以构建项目
msbuild All.sln /t:"_tools_\_gyp_\v8" /p:Configuration=Release /p:Platform=x64
我很匆忙-这是重建所有的解决方案。我不确定这是否是一个选项。谢谢这非常有帮助。我想让其他人知道的问题是,如果您的项目名为“hello.world”,那么msbuild的目标实际上是“hello\u world”,用“\u”替换“.”也让我明白了。此外,没有“构建”目标,只有“重建”。e、 g/t:你好,世界:重建
msbuild All.sln /t:"_tools_\_gyp_\v8" /p:Configuration=Release /p:Platform=x64