在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时找不到任何答案。
答案 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的位置。如何解决此错误,虽然这不是标准方法,但可以解决。
从此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
如您所愿,它应该能够按预期运行。