Win7/VS2010构建WebKit-r161259失败

Posted

技术标签:

【中文标题】Win7/VS2010构建WebKit-r161259失败【英文标题】:Failed to Build WebKit-r161259 on Win7/VS2010 【发布时间】:2014-01-03 23:45:31 【问题描述】:

我已经在 Win7/VS2010 上成功构建了 WebKit-r128959,但是现在源(WebKit-r161259)发生了很大的变化,我的经验不再适用了...... 我遇到了第一个错误。

WebKitSupportLibrary is up-to-date.
Building results into: /cygdrive/c/cygwin_dir/home/LioMoon/WebKit-r161249/WebKitBuild
WEBKIT_OUTPUTDIR is set to: C:\cygwin_dir\home\LioMoon\WebKit-r161249\WebKitBuild
WEBKIT_LIBRARIES is set to: C:\cygwin_dir\home\LioMoon\WebKit-r161249\WebKitLibraries\win
/cygdrive/c/Program Files/Microsoft Visual Studio 10.0/Common7/IDE/devenv.com WebKit.vcxproj\WebKit.sln /build Release|Win32

Microsoft (R) Visual Studio Version 10.0.40219.1.
Copyright (C) Microsoft Corp. All rights reserved.
------ Build started: Project: WTFGenerated, Configuration: Release Win32 ------
Build started 1/4/2014 7:05:45 AM.
Build:
  /usr/bin/which: no bash in ((null))
  'nmake' is not recognized as an internal or external command,
  operable program or batch file.
C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.MakeFile.Targets(38,5): error MSB3073: The command "%SystemDrive%\cygwin\bin\which.exe bash
C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.MakeFile.Targets(38,5): error MSB3073: if errorlevel 1 set PATH=%SystemDrive%\cygwin\bin;%PATH%
C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.MakeFile.Targets(38,5): error MSB3073: set PLATFORMARCHITECTURE=32
C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.MakeFile.Targets(38,5): error MSB3073: nmake /nologo -f WTFGenerated.make" exited with code 9009.

Build FAILED.

我只是不明白为什么路径是 (null) 以及为什么 devenv 可执行文件找不到 nmake。以下几行是VS2010中的路径变量:

Path=C:\Program Files\Microsoft F#\v4.0\;C:\Program Files\Microsoft Visual Studi
o 10.0\VSTSDB\Deploy;C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\;
c:\Program Files\Microsoft Visual Studio 10.0\VC\BIN;C:\Program Files\Microsoft
Visual Studio 10.0\Common7\Tools;c:\Windows\Microsoft.NET\Framework\v4.0.30319;c
:\Windows\Microsoft.NET\Framework\v3.5;c:\Program Files\Microsoft Visual Studio
10.0\VC\VCPackages;C:\Program Files\html Help Workshop;C:\Program Files\Microsof
t Visual Studio 10.0\Team Tools\Performance Tools;C:\Program Files\Microsoft SDK
s\Windows\v7.0A\bin\NETFX 4.0 Tools;C:\Program Files\Microsoft SDKs\Windows\v7.0
A\bin;c:\Program Files\Microsoft Visual Studio 10.0\Common7\Tools\..\..\VC\bin;C
:\cygwin\bin;C:\Program Files\Parallels\Parallels Tools\Applications;C:\Windows\
system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShe
ll\v1.0\;c:\Program Files\Microsoft SQL Server\100\Tools\Binn\;c:\Program Files\
Microsoft SQL Server\100\DTS\Binn" /f;c:\Program Files\Microsoft Visual Studio 1
0.0\Common7\Tools\..\..\VC\bin;

显然它不为空。我该如何解决这个问题?

【问题讨论】:

【参考方案1】:

我的构建经验如下。更多信息请访问http://blog.csdn.net/lzl124631x/article/details/18098361

环境:
     操作系统:Windows 7 Ultimate 32 位
     处理器:英特尔酷睿 i7 860
     安装内存:4.00 GB

1、安装VS2013:
     一种。安装 Win7 SP1 (windows6.1-KB976932-X86.exe)
     湾。为IE10安装5个补丁
          ⅰ. Windows6.1-KB2533623-x86.msu
          ⅱ. Windows6.1-KB2670838-x86.msu
          ⅲ. Windows6.1-KB2729094-v2-x86.msu
          ⅳ。 Windows6.1-KB2731771-x86.msu
          ⅴ. Windows6.1-KB2786081-x86.msu
     C。安装 IE10 (IE10-Windows6.1-x86-en-us.exe)
     d。安装 VS2013 (VS2013_RTM_ULT_ENU.iso)
     e.右键单击“C:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE\devenv.exe”,“属性”,“兼容性”,勾选“以管理员身份运行此程序”。

2. 安装 Cygwin
     一种。下载 cygwin-downloader.zip (http://svn.webkit.org/repository/webkit/trunk/Tools/CygwinDownloader/cygwin-downloader.zip) 并解压。
     湾。运行 cygwin-downloader.exe 并等待...
     C。运行 setup.exe,选择“从本地目录安装”并安装。
     d。运行 setup.exe,选择“从 Internet 安装”
          一世。在“选择包”之前的步骤中,只需选择默认文件夹,无论连接和下载站点。
          ⅱ.选择包:搜索“gcc”,展开Devel,选择“gcc-g++: GNU Compiler Collection(C++)”
          ⅲ.选择包:搜索“gdb”,展开Devel,选择“gdb: The GNU Debugger”
     在“使用 Cygwin 安装 gcc”(http://www.eecg.utoronto.ca/~aamodt/ece242/cygwin.html)中查看更多信息
     e.打开 C:\cygwin\etc\profile
          ⅰ.将第 32 行修改为 PATH="/bin:$PATH"
          ⅱ.通过在每行的开头添加“#”来注释第 44-50 行。

3. 安装 SDK
     一种。安装 QuickTime SDK (https://developer.apple.com/quicktime/)
     湾。安装 Direct SDK(2010 年 6 月 DirectX SDK:http://www.microsoft.com/en-us/download/details.aspx?id=6812)

4. 获取代码
     一种。下载 Nightly Build (http://nightly.webkit.org/) 并解压。我的版本是 WebKit-r161524。
     湾。抑制警告 4309:打开“WebKitLibraries/win/tools/vsprops/common.props”,找到标签,添加 4309。
     C。下载支持库 (https://developer.apple.com/opensource/internet/webkit_sptlib_agree.html) 并将其复制到 WebKit-r161524。不要解压缩它。
     d。打开Source/WebCore/platform/LocalizedString.cpp,搜索“查找”,删除“%@”和“”两边的DOUBLE-BYTE双引号。

5. 将以下行保存为 .cmd/.bat 文件。我将其命名为 Build.cmd。

    @echo 关闭

    echo 设置链接...
    设置 CYGWIN_DIR=C:\cygwin

    设置 WEBKIT_SOURCE_DIR=%~dp0%
    如果 "%WEBKIT_SOURCE_DIR:~-1%"=="\" 设置 WEBKIT_SOURCE_DIR=%WEBKIT_SOURCE_DIR:~0,-1%

    对于 /R "delims=\" %%a in (%WEBKIT_SOURCE_DIR%) 设置 WEBKIT_DIR_NAME=%%~nxa
    设置 WEBKIT_LINK_DIR=%CYGWIN_DIR%\home\%username%\%WEBKIT_DIR_NAME%

    如果存在 "%WEBKIT_LINK_DIR%" rmdir "%WEBKIT_LINK_DIR%"
    mklink /D "%WEBKIT_LINK_DIR%" "%WEBKIT_SOURCE_DIR%"

    echo 正在导出环境变量...
    设置 WEBKIT_OUTPUTDIR=%WEBKIT_LINK_DIR%\WebKitBuildByCygwin
    设置 WEBKIT_LIBRARIES=%WEBKIT_LINK_DIR%\WebKitLibraries\win
    设置 VSINSTALLDIR=%VS120COMNTOOLS%..\..
    设置 PATH=%WEBKIT_LINK_DIR%\Tools\Scripts;%PATH%

    echo 运行 Cygwin...
    调用“%CYGWIN_DIR%\Cygwin.bat”
    :出口

6. 建造
     一种。运行构建.cmd
     湾。更新-webkit
     C。构建-webkit --debug |三通 WebKit-r161524/log.txt

其他材料:
     一种。在 Windows 上构建:http://trac.webkit.org/wiki/BuildingOnWindows(WebKit 团队关于在 Windows 上构建的说明)
     湾。 ​WebKit 维基:http://trac.webkit.org/wiki/WikiStart

错误解决方案:
-------------------------------------------------- ------------------
错误信息:
     17> sh: /usr/bin/gcc: 没有这样的文件或目录
     17> 无法从文件中读取名称:/cygdrive/g/WEBKIT~1/Source/WebCore/html/HTMLTagNames.in 在 /cygdrive/g/WEBKIT~1/Source/WebCore/dom/make_names.pl 第 324 行。
     17> /cygdrive/g/WEBKIT~1/Source/WebCore/DerivedSources.make:942:目标“HTMLElementFactory.cpp”的配方失败
     17> 制作:*** [HTMLElementFactory.cpp] 错误 127
     17> make: *** 等待未完成的工作....
     17> ./CSSGrammar.y:62.1:错误:语法错误,文件意外结束
解决方案:
     将 gcc 安装到 Cygwin(步骤 2.d)。
-------------------------------------------------- ------------------
错误信息:
     17> build-generated-files.sh:第 59 行:cd:/home/Moon/WEBKIT~1/WEBKIT~2/Debug/obj32/WebCore/DerivedSources:权限被拒绝
     18> c1xx : 致命错误 C1083: 无法打开源文件: 'C:\cygwin\home\Moon\WebKit-r161524\WebKitBuildByCygwin\Debug\obj32\WebCore\DerivedSources\CSSPropertyNames.cpp': 没有这样的文件或目录
解决方案:
     右击“C:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE\devenv.exe”,“属性”,“兼容性”,勾选“以管理员身份运行此程序”
-------------------------------------------------- ------------------
错误信息:
     ..\platform\LocalizedStrings.cpp(248):错误 C2001:常量中的换行符
或者
     ..\platform\LocalizedStrings.cpp(250):错误 C2001:常量中的换行符
解决方案:
     打开Source/WebCore/platform/LocalizedString.cpp,搜索“查找”,删除“%@”和“”两边的DOUBLE-BYTE双引号。

【讨论】:

【参考方案2】:

就我而言,我遇到的问题如下:

缺少perl等cygwin工具,make python o ruby​​: 执行 cygwin 的设置并安装缺少的组件。

同时安装在 cygwin 和 windows 中的冲突组件。例如,如果您在 windows 中安装了 python,并且它也安装在 cygwin 中,那么根据路径中指定的版本,您可能会收到与库版本相关的错误或由于不同的文件夹分隔符而导致查找文件的问题路径中使用的字符(“\”与“/”) remediation:从windows卸载有冲突的组件,让那个安装在cygwin中

构建脚本未找到已安装的 SDK: 考虑编辑脚本并指向您当前已安装的 SDK。您可以使用 regedit 在您的机器中找出与您的 SDK 对应的密钥。就我而言,我在脚本 webkitdirs.pm 中添加了与我当前的 windows SDK "HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Microsoft SDKs/Windows/v7.0A" 对应的密钥:

李> 第 1523 行:我的 @windowsPlatformSDKRegistryEntries = ( 第 1524 行:“HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Microsoft SDKs/Windows/v8.0A”, 第 1525 行:“HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Microsoft SDKs/Windows/v8.0”, 第 1526 行:“HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Microsoft SDKs/Windows/v7.1A”, 第 1527 行:“HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Microsoft SDKs/Windows/v7.1”, 第 1528 行:“HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Microsoft SDKs/Windows/v7.0A”, 第 1529 行:“HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/MicrosoftSDK/InstalledSDKs/D2FF9F89-8AA2-4373-8A31-C838BF4DBBE1”,第 1530 行:);

编码问题:如果您看到某些文件阻止构建,请打开该文件并确保它没有与 DOS/Unix 编码类型相关的编码问题。 补救措施:用正确的编码下载有问题的文件,然后重试。

与丢失文件或未找到文件有关的问题: 确保以管理员权限执行脚本。在某些情况下,脚本调用的第 3 方工具是没有权限的工具。如果是这种情况,请考虑编辑相关应用程序的设置并将兼容性更改为“以管理员身份运行”

【讨论】:

以上是关于Win7/VS2010构建WebKit-r161259失败的主要内容,如果未能解决你的问题,请参考以下文章

Win7+VS2010:mysql 源代码编译与调试

WIN7+VS2010无法使用winpcap编程获取网络接口信息,为啥????

How to Build MySQL from Source Code on Windows & compile MySQL on win7+vs2010

qt4.8.7 源码在win7+vs2010环境的x64编译(qt 64位)

(Win 7+VS 2013) WDK 8.1 Update 本身是不是足以安装构建环境?

win7+vs2013+opencv3.0配置