【发布时间】:2018-09-21 18:03:19
【问题描述】:
在 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 包含目录中,正如人们所期望的那样,在这个位置:
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\QtGui\5.10.1\QtGui\' 添加到 INCLUDE env var 不起作用,但我不认为这是正确的解决方案。
以下是我的环境中与 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 中找不到任何答案。
【问题讨论】:
-
这是QT安装下
Qt5GuiConfig.cmake文件的正确位置:该文件描述的是QT,而不是QTWebKit。您可以尝试在该文件中查找变量Qt5Gui_PRIVATE_INCLUDE_DIRS。 -
@Tsyvarev,谢谢。在将我的 Qt 构建与我可以访问的另一个构建进行比较后,我在该文件中的 Qt5Gui_PRIVATE_INCLUDE_DIRS 中添加了设置,但它对 QtWebKit 构建没有影响。从 QtWebKit 构建中引用该文件的内容是什么?它如何搜索该文件?它是如何利用它的?为什么我的构建不会自动设置此设置?