Qt WebEngine 플랫폼 참고 사항
소스에서 Qt WebEngine 구축
정적 빌드는 지원되지 않습니다.
소스에서 Qt 모듈을 빌드하기 위한 요구 사항은 지원되는 각 플랫폼에 대해 별도로 나열되어 있습니다:
또한 모듈을 빌드하려면 다음 도구가 필요합니다. Qt WebEngine 모듈을 빌드하려면 다음 도구가 필요합니다:
모든 플랫폼
모든 플랫폼에서 빌드 시 다음 도구가 필요합니다:
- C++20 컴파일러 지원
- CMake 3.19 이상
- Python 3 및 html5lib 라이브러리
- Bison, Flex
- GPerf
- Node.js 버전 14 이상
Windows
Windows에서는 다음과 같은 추가 도구가 필요합니다:
- Visual Studio 2019 이상 또는 clang-cl 버전 10 이상
- 일반적으로 Visual Studio 설치에 포함된 ATL(활성 템플릿 라이브러리)
- Windows 11 SDK 버전 10.0.22621.0 이상
참고: msys2
또는 cygwin
의 도구를 사용하여 Qt WebEngine 을 빌드하는 것은 빌드 오류가 발생할 수 있으므로 권장하지 않습니다.
Linux
Linux에서는 Clang 또는 GCC 버전 10 이상이 필요합니다.
Qt WebEngine 대부분의 종속성을 감지하려면 pkg-config
파일이 필요합니다. 다음 pkg-config
파일이 필요합니다:
dbus-1
fontconfig
Qt가 xcb
에 대해 구성된 경우 다음 pkg-config
파일도 필요합니다:
libdrm
xcomposite
xcursor
xi
xrandr
xscrnsaver
xtst
macOS
macOS에서는 다음이 필요합니다:
- macOS 10.14 이상
- Xcode 12.0 이상
- macOS 11 SDK 이상
참고: Qt WebEngine 는 macOS의 32비트 모드에서는 빌드할 수 없습니다( macx-clang-32
mkspec
사용).
이전 Qt 버전을 사용하여 빌드하기 Qt WebEngine
이전 Qt 버전(마지막 LTS 버전까지)으로 Qt WebEngine 빌드가 지원됩니다. 즉, Qt WebEngine 6.4는 Qt 6.2.x, Qt 6.3.x 및 Qt 6.4로 빌드할 수 있습니다.
이전 Qt 버전을 사용하여 Qt WebEngine을 빌드하려면:
- qtwebengine 소스를 다운로드합니다.
- 이전 Qt 버전에서
qmake && make (&& make install)
을 실행합니다.
Mac App Store 호환성
Qt WebEngine 을 사용하는 애플리케이션은 Mac App Store와 호환되지 않습니다:
- 코드의 Chromium 부분은 앱 스토어에서 금지하는 몇 가지 비공개 API 메서드를 사용합니다.
- 앱 스토어에 제출하는 애플리케이션은 앱 샌드박스 기능을 활성화한 상태에서 코드 서명을 해야 합니다. 앱 샌드박스 기능은 크롬의 자체 샌드박스 초기화를 방해하여 크롬이 제대로 초기화되지 않는 결과를 초래합니다. 이는 비공개 API 사용과도 관련이 있습니다. 또한 독립형 크롬 자체는 앱 샌드박스를 활성화한 상태에서 공식적으로 테스트되지 않으며, 앱스토어의 제한을 우회하는 작업을 수행하더라도 라이브러리의 올바른 동작을 보장할 수 없습니다.
듀얼 GPU가 탑재된 MacBook에서 macOS Airplay 지원
GPU 전환을 지원하는 MacBook에서 AppleTV로 스트리밍할 때 Qt WebEngine 이 올바르게 작동하도록 하려면 애플리케이션 Info.plist 파일에 NSSupportsAutomaticGraphicsSwitching
옵션을 추가하고 값을 YES
로 설정하는 것이 중요합니다. 그렇지 않으면 Airplay가 켜지거나 꺼진 후 새 웹 엔진 보기 인스턴스를 만들 때 렌더링 문제가 발생할 수 있습니다.
기본 QSurfaceFormat OpenGL 프로파일 지원
수정된 OpenGL 프로필이 포함된 새로운 기본값 QSurfaceFormat 을 설정해야 하는 경우, 애플리케이션 인스턴스를 선언하기 전에 설정하여 생성된 모든 OpenGL 컨텍스트가 동일한 OpenGL 프로필을 사용하도록 해야 합니다.
macOS에서 기본값 QSurfaceFormat 이 애플리케이션 인스턴스 뒤에 설정된 경우 애플리케이션은 qFatal()으로 종료되고 기본값 QSurfaceFormat 이 애플리케이션 인스턴스 앞에 설정되어야 한다는 메시지를 인쇄합니다.
샌드박싱 지원
Qt WebEngine 는 크롬 렌더링 프로세스에 대한 기본 샌드박싱 지원을 제공합니다.
Linux에서는 다음 제한 사항에 유의하세요:
- 커널이 익명 네임스페이스 기능을 지원해야 합니다(커널 버전 3.8 이상). 그러나 데비안, 우분투 및 기타 데비안 파생 배포판에서는 이 기능이 기본적으로 꺼져 있습니다.
/proc/sys/kernel/unprivileged_userns_clone
을 1로 설정하여 이 기능을 켤 수 있습니다. - 커널이
seccomp-bpf
기능을 지원해야 합니다(커널 버전 3.5 이상). - Setuid 샌드박스는 지원되지 않으므로 비활성화됩니다.
샌드박스를 명시적으로 비활성화하려면 다음 옵션 중 하나를 사용하세요:
QTWEBENGINE_DISABLE_SANDBOX
환경 변수를 1로 설정합니다.--no-sandbox
명령줄 인수를 사용자 애플리케이션 실행 파일에 전달합니다.QTWEBENGINE_CHROMIUM_FLAGS
을--no-sandbox
으로 설정합니다.
자세한 내용은 명령줄 인수 사용을 참조하세요.
Docker 환경의 메모리 요구 사항
도커 컨테이너에서 Qt 웹 엔진 예제를 실행하고 콘텐츠가 많은 사이트를 탐색할 때 BUS 오류(SIGBUS)가 보고될 수 있습니다. 일반적으로 이 문제는 메모리 공간이 너무 작은 컨테이너(예: 64MB)를 실행하는 Docker로 인해 발생합니다. 이 문제를 해결하려면 메모리 공간 크기를 늘리세요.
접근성 및 성능
Qt WebEngine 다음 조건이 충족되면 웹 페이지에 대한 접근성 지원을 활성화합니다:
- Qt Core 접근성 지원이 활성화된 상태로 구성 및 빌드되었습니다.
- 운영 체제에서 접근성을 활성화해야 한다는 알림을 QPA 플러그인에 보냅니다. 예를 들어 Windows에서 스크린 리더 애플리케이션을 사용하거나 macOS에서 VoiceOver를 사용할 때 이런 일이 발생합니다.
일부 구형 Linux 구성에서는 접근성 때문에 큰 HTML 페이지에서 속도가 크게 느려질 수 있습니다.
따라서 Linux에서는 QTWEBENGINE_ENABLE_LINUX_ACCESSIBILITY
환경 변수를 0으로 설정하여 Qt WebEngine 접근성 지원을 비활성화할 수 있습니다.
Windows에서 전체 화면 애플리케이션의 팝업
Windows 컴포저의 제한으로 인해 전체 화면 웹 엔진 보기를 표시하는 애플리케이션에서 팝업이나 기타 최상위 창이 제대로 표시되지 않습니다. 그 이유와 해결 방법은 전체 화면 OpenGL 기반 창에 설명되어 있습니다.
Windows 애플리케이션 매니페스트
매니페스트는 프로그램이 시작될 때 읽혀지고 Windows에 프로그램 실행 방법을 알려주는 XML 파일입니다. 일부 Qt WebEngine 기능은 사용자 애플리케이션이 Windows에서 올바르게 작동하기 위해 매니페스트 파일을 추가해야 할 수 있습니다.
다음 코드 조각은 매니페스트 파일의 구조와 이를 프로그램에 임베드하는 방법을 보여줍니다.
참고: 이 코드 조각은 WebEngine 퀵 나노 브라우저 예제에서 가져온 것입니다.
매니페스트 파일은 애플리케이션이 지원하는 Windows 버전을 정의합니다. httpUserAgent 에서 올바른 Windows 버전을 보고하려면 이 정보가 필요합니다.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1"> <application> <!--The ID below indicates application support for Windows Vista --> <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/> <!--The ID below indicates application support for Windows 7 --> <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/> <!--The ID below indicates application support for Windows 8 --> <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/> <!--The ID below indicates application support for Windows 8.1 --> <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/> <!--The ID below indicates application support for Windows 10/11 --> <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/> </application> </compatibility> </assembly>
파일을 실행 파일에 임베드하려면 소스에 추가하세요:
... qt_add_executable(quicknanobrowser main.cpp utils.h ) if(WIN32) set_property( TARGET quicknanobrowser APPEND PROPERTY SOURCES quicknanobrowser.exe.manifest) endif() ...
자세한 내용은 애플리케이션 매니페스트 문서 페이지를 참조하세요.
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.