error MSB3073: 命令“REM Do not edit from the Visual Studio IDE! Customize via a JavaScriptCorePreLink.

环境:win7 32位,vs2013 英文版

问题:使用vs2013编译webkit-r174650版本,公司电脑编译失败,自己电脑编译成功,新装一个虚拟机win7也能编译成功。公司电脑报错:

9>------ 已启动生成:  项目: JavaScriptCore, 配置: Debug Win32 ------
9>  /usr/bin/perl
9>  svn: E155007: '/home/Administrator/WebKit-r174650/Source/JavaScriptCore/JavaScriptCore.vcxproj' is not a working copy
9>  Use of uninitialized value $SVN_REVISION in scalar chomp at C:\cygwin\home\administrator\webkit-r174650\WebKitLibraries\win\tools\scripts\auto-version.pl line 86.
9>  Use of uninitialized value $SVN_REVISION in concatenation (.) or string at C:\cygwin\home\administrator\webkit-r174650\WebKitLibraries\win\tools\scripts\auto-version.pl line 90.
9>  Assembling C:\cygwin\home\administrator\webkit-r174650\WebKitBuild\Debug\obj32\JavaScriptCore\DerivedSources\LowLevelInterpreterWin.asm...
9>  Assembling ..\jit\JITStubsMSVC64.asm...
9>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(127,5): error MSB3073: 命令“REM Do not edit from the Visual Studio IDE! Customize via a JavaScriptCorePreLink.cmd file.
9>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(127,5): error MSB3073: if not exist "C:\cygwin\home\Administrator\WebKit-r174650\Source\JavaScriptCore\JavaScriptCore.vcxproj\JavaScriptCorePreLink.cmd" exit /b
9>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(127,5): error MSB3073:
9>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(127,5): error MSB3073: set CONFIGURATIONBUILDDIR=C:\cygwin\home\administrator\webkit-r174650\WebKitBuild\Debug
9>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(127,5): error MSB3073: set CONFIGURATIONNAME=Debug
9>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(127,5): error MSB3073: set INPUTDIR=
9>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(127,5): error MSB3073: set INPUTFILENAME=
9>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(127,5): error MSB3073: set INPUTPATH=
9>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(127,5): error MSB3073: set INTDIR=C:\cygwin\home\administrator\webkit-r174650\WebKitBuild\Debug\obj32\JavaScriptCore\
9>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(127,5): error MSB3073: set OUTDIR=C:\cygwin\home\administrator\webkit-r174650\WebKitBuild\Debug\bin32\
9>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(127,5): error MSB3073: set PLATFORMARCHITECTURE=32
9>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(127,5): error MSB3073: set PLATFORMNAME=Win32
9>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(127,5): error MSB3073: set PROJECTDIR=C:\cygwin\home\Administrator\WebKit-r174650\Source\JavaScriptCore\JavaScriptCore.vcxproj\
9>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(127,5): error MSB3073: set PROJECTFILENAME=JavaScriptCore.vcxproj
9>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(127,5): error MSB3073: set PROJECTNAME=JavaScriptCore
9>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(127,5): error MSB3073: set PROJECTPATH=C:\cygwin\home\Administrator\WebKit-r174650\Source\JavaScriptCore\JavaScriptCore.vcxproj\JavaScriptCore.vcxproj
9>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(127,5): error MSB3073: set SOLUTIONDIR=C:\cygwin\home\Administrator\WebKit-r174650\Source\WebKit\WebKit.vcxproj\
9>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(127,5): error MSB3073: set SOLUTIONFILENAME=WebKit.sln
9>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(127,5): error MSB3073: set SOLUTIONNAME=WebKit
9>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(127,5): error MSB3073: set SOLUTIONPATH=C:\cygwin\home\Administrator\WebKit-r174650\Source\WebKit\WebKit.vcxproj\WebKit.sln
9>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(127,5): error MSB3073: set TARGETDIR=C:\cygwin\home\administrator\webkit-r174650\WebKitBuild\Debug\bin32\
9>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(127,5): error MSB3073: set TARGETEXT=.dll
9>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(127,5): error MSB3073: set TARGETFILENAME=JavaScriptCore.dll
9>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(127,5): error MSB3073: set TARGETPATH=C:\cygwin\home\administrator\webkit-r174650\WebKitBuild\Debug\bin32\JavaScriptCore.dll
9>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(127,5): error MSB3073: set DEBUGSUFFIX=
9>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(127,5): error MSB3073: set WEBKIT_LIBRARIES=C:\cygwin\home\administrator\webkit-r174650\WebKitLibraries\win
9>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(127,5): error MSB3073:
9>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(127,5): error MSB3073: REM If any of the above variables didn't exist previously and
9>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(127,5): error MSB3073: REM were set to an empty string, set will set the errorlevel to 1,
9>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(127,5): error MSB3073: REM which will cause the project-specific script to think the build
9>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(127,5): error MSB3073: REM has failed. This cmd /c call will clear the errorlevel.
9>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(127,5): error MSB3073: cmd /c
9>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(127,5): error MSB3073:
9>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(127,5): error MSB3073: "C:\cygwin\home\Administrator\WebKit-r174650\Source\JavaScriptCore\JavaScriptCore.vcxproj\JavaScriptCorePreLink.cmd"
9>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(127,5): error MSB3073:
9>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(127,5): error MSB3073: :VCEnd”已退出,代码为 1。

解决:用记事本打开JavaScriptCorePreLink.cmd,然后填写echo do thing,主要就是让JavaScriptCorePreLink.cmd非0kb

原因:操作系统有问题(我从网上新装的操作系统就可以编辑空bat文件),右键任何0kb的.bat,.cmd文件,点击编辑/打开/打印都报参数错误。这个原因导致vs无法正确运行空的JavaScriptCorePreLink.cmd


<think>好的,我需要解决用户遇到的MSB3073错误,特别是在Visual Studio 2017中出现的Microsoft.CppCommon.targets中的setlocal命令问题。首先,我得理解这个错误的原因。根据用户提供的引用,错误发生在执行CMake安装命令时,退出代码为1。这可能是因为路径问题、权限不足,或者CMake配置错误。 用户提到的引用[1]和[2]都涉及CMake执行失败,可能因为绝对路径的问题,而引用[3]提到CMake生成的VS工程使用绝对路径,可能导致迁移到新电脑时出错。因此,我需要考虑路径设置是否正确,特别是CMake的安装路径是否存在于新系统中。另外,检查项目中的CMakeLists.txt是否有硬编码的绝对路径,或者环境变量是否正确配置。 可能的解决步骤包括:验证CMake路径是否正确,检查构建目录权限,清理并重新生成CMake缓存,以及检查自定义生成步骤中的命令是否有误。此外,用户可能需要将CMake路径添加到系统环境变量,或者使用相对路径来避免绝对路径问题。还有,确保Visual Studio的版本与CMake兼容,或者尝试使用Ninja生成器代替MSBuild,如引用[3]提到的,可能解决路径问题。 最后,需要提醒用户检查错误日志的具体输出,以确定更精确的问题所在,比如具体的文件缺失或权限错误。这样能更有针对性地解决问题。</think>### MSB3073错误解决方案 MSB3073错误通常发生在Visual Studio执行自定义生成步骤时,常见于CMake项目构建或安装过程中。该错误提示表明系统在运行`setlocal`命令时遇到问题,以下是逐步排查和解决方法: --- #### **1. 验证CMake路径配置** 错误信息中显示的CMake路径(如`C:\Program Files (x86)\CMake\bin\cmake.exe`)可能与实际安装路径不符: - 打开项目属性 > **生成事件** > **后期生成事件** - 检查命令行中CMake的路径是否正确 - 若路径错误,手动修正为当前CMake安装路径,例如: ```bash "C:\Program Files\CMake\bin\cmake.exe" -DBUILD_TYPE=Release -P cmake_install.cmake ``` 或通过环境变量直接调用: ```bash "%CMakePath%\cmake.exe" -DBUILD_TYPE=Release -P cmake_install.cmake ``` --- #### **2. 检查生成目录权限** - 右键点击项目解决方案目录(如`build`或`out`文件夹) - 选择**属性** > **安全** > 确保当前用户有**完全控制权限** - 若存在旧生成文件,删除`CMakeCache.txt`和`CMakeFiles`文件夹后重新生成 --- #### **3. 修正CMake生成命令** 在`CMakeLists.txt`中检查`install`指令是否包含无效路径: ```cmake # 错误示例(绝对路径硬编码) install(FILES "D:/old_pc/libs/icon.png" DESTINATION "resources") # 修正为相对路径 install(FILES "${CMAKE_SOURCE_DIR}/resources/icon.png" DESTINATION "resources") ``` 使用`${CMAKE_SOURCE_DIR}`替代绝对路径可提高可移植性[^3]。 --- #### **4. 更新构建工具链** | 工具 | 最低要求版本 | 验证方法 | |--------------|--------------|---------------------------| | CMake | ≥3.20 | `cmake --version` | | Visual Studio| 2017 v15.9+ | 帮助菜单 > 关于Visual Studio | | Windows SDK | ≥10.0.17763 | 安装程序 > 修改 > 单个组件| --- #### **5. 替代构建方法** 若问题持续,可尝试通过命令行直接构建: ```bash mkdir build cd build cmake -G "Visual Studio 15 2017 Win64" .. cmake --build . --config Release ``` 此方法可绕过VS的集成构建系统,直接调用CMake的生成器[^3]。 --- #### **典型错误日志分析** 观察错误输出中更早的提示信息,例如: ```log CMake Error at cmake_install.cmake:36 (file): file INSTALL cannot find "lib/incorrect_path.dll" ``` 这表示需要修正`CMakeLists.txt`中`install`指令指定的文件路径。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值