专用标头发布针对Qt 5.10.1编译QtWebKit 5.212

时间:2018-09-21 18:03:19

标签: c++ qt cmake qt5 qtwebkit

在Windows 10,Visual Studio 2015上,我针对Qt 5.10.1构建QtWebKit(5.212),并且在构建的配置部分遇到错误。

这是我使用的命令行:

perl Tools\Scripts\build-webkit --qt --release --only-webkit --no-ninja --cmakeargs="-Thost=x64 -DCMAKE_GENERATOR_PLATFORM=x64" -G \"Visual Studio 14 2015 Win64\" --prefix=E:\Qt-5.10.1\QtWebKitBin -v

这是错误:

-- Performing Test Qt5Gui_PRIVATE_HEADER_FOUND
-- Performing Test Qt5Gui_PRIVATE_HEADER_FOUND - Failed
CMake Error at Source/cmake/OptionsQt.cmake:75 (message):
  Header private/qhexstring_p.h is not found.  Please make sure that:

      1. Private headers of Qt5Gui are installed
      2. Qt5Gui_PRIVATE_INCLUDE_DIRS is correctly defined in Qt5GuiConfig.cmake
Call Stack (most recent call first):
  Source/cmake/OptionsQt.cmake:612 (CHECK_QT5_PRIVATE_INCLUDE_DIRS)
  Source/cmake/WebKitCommon.cmake:50 (include)
  CMakeLists.txt:139 (include)


-- Configuring incomplete, errors occurred!

用于测试的专用标头确实存在于以下位置的Qt5 include目录中:

E:\Qt-5.10.1\QtBin\include\QtGui\5.10.1\QtGui\private\qhexstring_p.h

Qt5GuiConfig.cmake文件仅存在于Qt安装的E:\Qt-5.10.1\QtBin\lib\cmake\Qt5Gui目录中(而不存在于QtWebKit源安装中)。我不知道它是否在以任何方式利用它。

我需要做些什么才能使构建找到所需的目录?在INCLUDE env var中添加'include \ QtGui \ 5.10.1 \ QtGui \'无效,但是我仍然认为这不是正确的解决方案。

这是我的环境中与Qt目录相关的部分:

INCLUDE = ...;E:\Qt-5.10.1\QtBin\include;E:\Qt-5.10.1\qt-everywhere-src-5.10.1\include
LIB = ...;E:\Qt-5.10.1\QtBin\lib;E:\Qt-5.10.1\qt-everywhere-src-5.10.1\lib
PATH = E:\Qt-5.10.1\qt-everywhere-src-5.10.1\qtbase\bin;E:\Qt-5.10.1\qt-everywhere-src-5.10.1\gnuwin32\bin;E:\Qt-5.10.1\QtBin\bin;...

QtBin是包含我编译的Qt 5.10.1的目录。

qt-everywhere-src-5.10.1是Qt 5.10.1源码包

在此先感谢您的帮助。我在搜索Google或StackOverflow时找不到任何答案。

2 个答案:

答案 0 :(得分:0)

根据Checking if list is a sublist,您应尝试定义CMAKE_PREFIX_PATH以指向您的Qt安装

例如:

perl Tools\Scripts\build-webkit --qt --release --only-webkit --no-ninja --cmakeargs="-Thost=x64 -DCMAKE_GENERATOR_PLATFORM=x64 -DCMAKE_PREFIX_PATH=c:\Qt\Qt5.6.0\5.6\msvc2015" -G \"Visual Studio 14 2015 Win64\" --prefix=E:\Qt-5.10.1\QtWebKitBin -v

答案 1 :(得分:0)

在Windows上使用build-webkit进行构建失败,因为它无法找到此头文件qhexstring_p.h的位置。如何解决此错误,虽然这不是标准方法,但可以解决。

  1. 在前缀目录中找到文件qhexstring_p.h,或者 首选的Qt安装SDK
  2. 转到此文件Source \ cmake \ OptionsQt.cmake并更改它

从此CHECK_QT5_PRIVATE_INCLUDE_DIRS(Gui private / qhexstring_p.h)

对此

CHECK_QT5_PRIVATE_INCLUDE_DIRS(Gui C:/SDK/qt5-5.7.0-vs2015/qt5-x86-static-release/include/QtGui/5.7.0/QtGui/private/qhexstring_p.h)

此处的路径必须与您的Qt安装路径以及丢失文件所在的确切位置相匹配。这样可以确保寻找Qt安装专用控制器的测试成功。

然后在Qt安装目录中找到文件Qt5GuiConfig.cmake,并将变量Qt5Gui_PRIVATE_INCLUDE_DIRS设置为您在以下位置找到专用头的位置。

set(Qt5Gui_PRIVATE_INCLUDE_DIRS "${_qt5Gui_install_prefix}/include/QtGui/${Qt5Gui_VERSION_STRING}/QtGui" "${_qt5Gui_install_prefix}/include/QtCore/${Qt5Gui_VERSION_STRING}/QtCore")

请注意,此版本的QtWebKit(5.212)已知具有多个 错误,因此最好选择那些稳定的错误。

保存并运行

perl Tools\Scripts\build-webkit --qt --release --only-webkit --no-ninja --cmakeargs="-Thost=x64 -DCMAKE_GENERATOR_PLATFORM=x64 -DCMAKE_PREFIX_PATH=c:\Qt\Qt5.6.0\5.6\msvc2015" -G \"Visual Studio 14 2015 Win64\" --prefix=E:\Qt-5.10.1\QtWebKitBin -v

如您所愿,它应该能够按预期运行。

相关问题