LỖI dự án: (Các) mô-đun không xác định trong QT: webkitwidgets


76

Tôi đang chuyển mã từ qt4 sang qt5. Tôi đã thêm dòng sau vào .protệp của mình , như được đề xuất :

QT += webkitwidgets

Tuy nhiên, khi tôi chạy qmake, tôi gặp lỗi này:

Project ERROR: Unknown module(s) in QT: webkitwidgets

Tôi đang phát triển trên Ubuntu 12.04 LTS và đã cài đặt Qt như được mô tả .

Câu trả lời:


116

Bạn cần cài đặt thư viện webkitwidgets.

Trên Ubuntu, hãy thử điều này trong một thiết bị đầu cuối:

sudo apt-get install libqt5webkit5-dev

10
Có giải pháp nào cho OS X không?
Ionică Bizău

3
Này, tôi đã thử điều này nhưng nó vẫn gặp lỗi tương tự. Có một giải pháp?
Wboy

9
Windows thì sao?
jjxtra

@Muadh Programmer: Câu hỏi nói rằng cần có một giải pháp cho Ubuntu, vì vậy câu trả lời của tôi là dành cho hệ điều hành đó. Tuy nhiên, các câu trả lời khác đề cập đến Windows. Nếu bạn có câu hỏi liên quan đến giải pháp của họ, bạn có thể nhận xét về câu trả lời của họ.
user1251007

10

Nếu bạn cần cài đặt thư viện webkit * Windows cho Qt 5.7, bạn nên biên dịch nó theo cách thủ công vì trong phiên bản mới webkit (WebView?) Được thay thế bằng WebEngine.

Đọc về bản phát hành Qt 5.7 (nhận xét): http://blog.qt.io/blog/2016/06/16/qt-5-7-released/

Xây dựng trình tự (tĩnh HOẶC được chia sẻ):

1) Tải xuống các nguồn Qt 5.7.0: http://download.qt.io/community_releases/5.7/5.7.0/

2) Tải xuống các công cụ cần thiết: ActiveState Perl (nhị phân), Python (nhị phân), Ruby (nhị phân), GnuWin Bison (nhị phân), GPref (nhị phân), Grep (nhị phân), WinFlex, LibIconv, make (nhị phân), sqlite (nguồn !), ICU (nguồn), windows msys (nhị phân) (unix như shell với các công cụ), mingw-w64 (bin + dev) để xây dựng Qt với QtWebKit, xem liên kết trên: https://trac.webkit.org/ wiki / BuildingQtOnWindows

3) Sau khi tải nguồn ICU vào C: \ icu \ icu. Mở msys QT mingw console shell bằng cách mở menu Start windows (msys nên được tải xuống và cài đặt) và tìm kiếm hoặc sử dụng tìm kiếm nhanh. Trong bảng điều khiển đã mở, hãy bắt đầu cấu hình tập lệnh, sau đó biên dịch và cài đặt:

$ cd C: \ icu \ icu \ source

$ ./runConfigureICU

$ set PATH =% PATH%; C: \ msys \ 1.0 \ bin \

$ make.exe

cài đặt $ make.exe

4) Xây dựng Qt với hỗ trợ (!) ICU (đặt "-icu" để cấu hình) xem biên dịch tập lệnh bên dưới. Thay đổi PATH cho môi trường của bạn.

Cấu trúc thư mục:

  • C: \ Qt \ 5.7.0 - tải xuống phiên bản nhị phân của Qt 5.7.0 tại đây
  • C: \ Qt \ 5.7.0n - thư mục cho phiên bản mới (đã biên dịch) của 5.7.0 (chỉ tạo dir)
  • C: \ Qt \ Src - nguồn tải về Qt 5.7.0 tại đây

C: \ Qt \ Src \ qtbase \ compile.bat

set INCLUDE=C:\icu\icu\dist\include
set LIB=C:\icu\icu\dist\lib
set QTDIR=C:\Qt\5.7.0n
set PATH=%PATH%;C:\Qt\Qt5.7.0\5.7\mingw53_32\bin;C:\Qt\Qt5.7.0\Tools\QtCreator\bin;C:\Qt\Qt5.7.0\Tools\mingw530_32\bin;C:\Qt\Src\qtbase\bin;C:\Program Files (X86)\GnuWin32\bin;C:\winflex;C:\Ruby23-x64\bin;C:\Python27;C:\mingw-w64\i686-1\mingw32\bin;C:\icu\bin
set QMAKESPEC=win32-g++
set BUILD_DIR=C:\Qt\Qt5.7.0n
call C:\Qt\Src\qtbase\configure.bat -prefix %BUILD_DIR% -platform %QMAKESPEC% -confirm-license -debug-and-release -opensource -opengl desktop -no-compile-examples -icu -I C:/icu/icu/dist/include -L C:/icu/icu/dist/lib
jom.exe -j 4
pause

Chạy lệnh trong exmaple trong Windows Power Shell:

$ cd C: \ Qt \ Src \ qtbase

$ ./compile.bat

Sau khi vượt qua quá trình biên dịch, hãy sử dụng nó để cài đặt tệp trong BUILD_DIR (cài đặt tệp Qt):

$ C: \ mingw-w64 \ i686-1 \ mingw32 \ bin \ mingw32-make.exe cài đặt

Qt sẽ bắt đầu cài đặt

5) Tải các nguồn Qtwebkit xuống C: \ Qt \ Src \ qtwebkit. Sử dụng tập lệnh biên dịch bên dưới để biên dịch qtwebkit bằng cách sử dụng bản dựng Qt 5.7.0 mới với các tệp trong C: \ Qt \ 5.7.0n với ICU.

C: \ Qt \ Src \ qtwebkit \ Tools \ Scripts \ compile.bat

set INCLUDE=C:\sqlite
set LIBS=C:\sqlite
set SQLITE3SRCDIR=C:\sqlite
set QTDIR=C:\Qt\Qt5.7.0n
set PATH=%PATH%;C:\Qt\Qt5.7.0n\bin;C:\Qt\Src\qtbase\bin;C:\winflex;C:\Ruby23-x64\bin;C:\Python27;C:\mingw-w64\i686-1\mingw32\bin;C:\icu\bin;C:\Program Files (x86)\GnuWin32\bin
set QMAKESPEC=win32-g++
call perl.exe .\build-webkit --qt --release

Biên dịch qtwebkit:

$ cd C: \ Qt \ Src \ qtwebkit \ Tools \ Scripts

$ ./compile.bat

$ cd C: \ Qt \ Src \ qtwebkit \ WebKitBuild \ Phát hành

$ C: \ mingw-w64 \ i686-1 \ mingw32 \ bin \ mingw32-make.exe cài đặt

Có thể biên dịch ứng dụng của bạn với qtwebkit sau khi biên dịch và cài đặt thành công.

XÂY DỰNG QT CHO THỐNG KÊ

Chỉnh sửa tệp C: \ Qt \ Src \ qtbase \ compile.bat và chuyển qua bản dựng.

...
call C:\Qt\Src\qtbase\configure.bat -prefix %BUILD_DIR% -platform %QMAKESPEC% -confirm-license -debug-and-release -opensource -opengl desktop -static -no-compile-examples -icu
echo "QMAKE_FLAGS += -static -static-libgcc" >> .mkspecs/%QMAKESPEC%/qmake.conf
...

CÁC LỖI CÓ THỂ

1) Trong khi xây dựng qtwebkit: "fatal error: unicode/uchar.h: No such file or directory"

Kiểm tra xem bản dựng Qt 5.7.0n của bạn với ICU. CNTT cũng có thể thông báo cho bạn về "ICU cần thiết" khi cấu hình trong qtwebkit.

2) flex: unknown flag '-'. For usage, try

Bạn nên sử dụng đúng phiên bản Flex là "win_flex" trong trường hợp này. Bạn nên đổi tên tệp để sử dụng win_flex thay vì chỉ flex (và bison).

1) đổi tên C: \ Program Files (x86) \ GnuWin32 \ bin \ flex.exe thành một số tên không sử dụng.

2) đổi tên C: \ Program Files (x86) \ GnuWin32 \ bin \ bison.exe thành một số tên không sử dụng.

3) đổi tên C: \ winflex \ win_bison.exe thành bison.exe.

3) Trong khi xây dựng qtwebkit: "fatal error: sqlite3.h: No such file or directory"

Chỉnh sửa tệp C: \ Qt \ Src \ qtwebkit \ Tools \ Scripts \ compile.bat và kiểm tra đường dẫn chính xác đến sqlite:

set SQLITE3SRCDIR=C:\(path to some SQLITE .h/source files)

4) skipping incompatible ... when searching for ...

Bạn nên tải xuống vòm thư viện bên phải (32bit hoặc 64bit)

5) View.cpp ... undefined reference to WKPageCanGoBack

Có thể xảy ra khi vượt qua một số bài kiểm tra hoặc MiniBrowser. Bạn có thể tìm kiếm trong tệp "UIProcess / API / qt" và "MiniBroswer" và xóa nó khỏi Makefile's và một số tệp khác, sau đó bắt đầu xây dựng lại.

LIÊN KẾT

Xây dựng Qt5: https://wiki.qt.io/Building_Qt_5_from_Git Qt xây dựng WebKit

như cách: https://trac.webkit.org/wiki/BuildingQtOnWindows ICU

xây dựng bằng GNU: https://wiki.qt.io/Compiling-ICU-with-MinGW


Xin chào, tôi bị kẹt ở C: \ Qt \ Src \ qtbase \ compile.bat, điều này không thành công với "C: \ qt5.7-source \ qtbase> jom.exe -j 4 Lỗi: File Makefile không tồn tại." Bạn có biết những gì có thể là vấn đề?
tonisives

1
nhà phát triển ứng dụng 27, hãy đảm bảo rằng lệnh trước đó trong tệp bat được thực hiện thành công: "call C: \ Qt \ Src \ qtbase \ config.bat -prefix% BUILD_DIR% -platform% QMAKESPEC% -confirm-license -debug-and- release -opensource -opengl desktop -no-compile -amples -icu -IC: / icu / icu / dist / include -LC: / icu / icu / dist / lib "
Alex

Cảm ơn bạn vì câu trả lời! Bây giờ tôi nghĩ rằng đã đi xa hơn một chút với qtbase \ compile.bat. Bạn có biết điều gì có thể gây ra lỗi mới nhất "Cú pháp của lệnh không chính xác." Không? pastebin.com/pCLXvs22
tonisives

nhà phát triển ứng dụng 27, có thể là phiên bản làm cho phiên bản khác với phiên bản Visual Studio khác, bạn sử dụng gì để biên dịch? Kiểm tra tạo nhị phân của bạn để tạo đường dẫn dự án và đảm bảo rằng điều đó là chính xác.
Alex

1
Tôi không bao giờ làm cho nó hoạt động. Nhưng cuối cùng đã tìm thấy github.com/annulen/webkit/releases/tag/qtwebkit-tp5 này mà tôi có thể sử dụng webkit mới hơn và qt 5.8.
tonisives


1

Tôi đã làm cho nó hoạt động bằng cách sao chép các tệp pri webkit và webkitwidgets từ bản cài đặt trước đó, 5.5.

~/Qt/5.5/clang_64/mkspecs/modules/


1

Đối với windows, tôi vừa tải xuống https://github.com/annulen/webkit/releases/tag/qtwebkit-tp5 và sao chép các thư mục vào thư mục cài đặt Qt có liên quan. Bây giờ tôi có thể sử dụng MinGW Qt5.8 với webkit mới nhất. Cảm ơn Konstantin và tất cả những người đóng góp cho dự án này!

Chỉ một điều cần lưu ý - tôi cần sử dụng cấu hình phát hành trong Qt.


Bạn có thể cho biết bạn đã dán những tệp này vào thư mục nào có liên quan không?
taimoor1990

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.