{"id":453360,"date":"2025-03-26T09:00:50","date_gmt":"2025-03-26T09:00:50","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=453360"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=453360","title":{"rendered":"<span>\u041a\u0430\u043a \u043a\u0440\u043e\u0441\u0441-\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c WebView Go-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0441 CGO \u0434\u043b\u044f Linux \u0441 macOS: Zig, Docker \u0438 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043c\u0430\u0433\u0438\u0438<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<h2>\u041f\u0440\u043e\u043b\u043e\u0433<\/h2>\n<p>\u041d\u0435\u0434\u0430\u0432\u043d\u043e \u044f \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0441\u044f \u0441\u00a0\u0437\u0430\u0434\u0430\u0447\u0435\u0439 \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0441\u0432\u043e\u0451 Go\u2011\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e\u0435 \u0432\u043e\u043a\u0440\u0443\u0433 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 <code>github.com\/webview\/webview_go<\/code>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0431\u0451\u0440\u0442\u043a\u043e\u0439 \u0434\u043b\u044f\u00a0C\/C++ \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 webview, \u0434\u043b\u044f\u00a0Linux, \u0438\u0437\u00a0\u0447\u0435\u0433\u043e \u0432\u044b\u0442\u0435\u043a\u0430\u0435\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f CGO. \u041a\u0430\u0437\u0430\u043b\u043e\u0441\u044c\u00a0\u0431\u044b, \u0447\u0442\u043e\u00a0\u0441\u043b\u043e\u0436\u043d\u043e\u0433\u043e? \u0423\u043a\u0430\u0436\u0438 GOOS=linux, \u043f\u0440\u043e\u043f\u0438\u0448\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 CC= \u0438 CXX=, \u0432\u044b\u043f\u043e\u043b\u043d\u0438 go build\u00a0\u2014 \u0438 \u0433\u043e\u0442\u043e\u0432\u043e. \u041d\u043e\u00a0\u043d\u0435\u0442, CGO \u0438 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u0432\u0440\u043e\u0434\u0435 GTK \u043f\u0440\u0435\u0432\u0440\u0430\u0442\u0438\u043b\u0438 \u044d\u0442\u043e \u0432\u00a0\u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0439 \u043a\u0432\u0435\u0441\u0442. \u041f\u043e\u0441\u043b\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0447\u0430\u0441\u043e\u0432 \u0431\u043e\u0440\u044c\u0431\u044b \u0441\u00a0\u043e\u0448\u0438\u0431\u043a\u0430\u043c\u0438 \u0432\u0440\u043e\u0434\u0435 <code>Package webkit2gtk-4.0 was not found in the pkg-config search path.<\/code>, \u044f \u043d\u0430\u043a\u043e\u043d\u0435\u0446\u2011\u0442\u043e \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043b\u0441\u044f, \u043a\u0430\u043a\u00a0\u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0431\u0435\u0437\u00a0\u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f Zig \u0438 Docker (<em>\u044f \u0437\u043d\u0430\u044e \u0447\u0442\u043e\u00a0\u043d\u0430\u00a0macOS \u0434\u043e\u043a\u0435\u0440 \u043a\u0440\u0443\u0442\u0438\u0442\u0441\u044f \u0432\u00a0\u0432\u0438\u0440\u0442\u0443\u0430\u043b\u043a\u0435, \u0442\u0443\u0442 \u043e\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f\u00a0\u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u043e\u0432 \u0434\u043b\u044f\u00a0\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438<\/em>). \u0412\u00a0\u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0434\u0435\u043b\u044e\u0441\u044c \u0441\u0432\u043e\u0438\u043c \u0440\u0435\u0448\u0435\u043d\u0438\u0435\u043c\u00a0\u2014 \u043d\u0430\u0434\u0435\u044e\u0441\u044c, \u043e\u043d\u043e \u0441\u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442 \u0432\u0430\u043c \u0432\u0440\u0435\u043c\u044f.<\/p>\n<h2>\u0418\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b<\/h2>\n<ul>\n<li>\n<p><strong>Zig<\/strong>: \u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0434\u043b\u044f\u00a0C\u2011\u043a\u043e\u0434\u0430 \u0432\u00a0CGO. Zig \u0443\u043c\u0435\u0435\u0442 \u043a\u0440\u043e\u0441\u0441\u2011\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044e \u0438 \u0437\u0430\u043c\u0435\u043d\u044f\u0435\u0442 GCC\/Clang \u0434\u043b\u044f\u00a0\u0441\u0431\u043e\u0440\u043a\u0438 \u043f\u043e\u0434\u00a0Linux.<\/p>\n<\/li>\n<li>\n<p><strong>Docker<\/strong>: \u0427\u0442\u043e\u0431\u044b \u0432\u044b\u0442\u0430\u0449\u0438\u0442\u044c \u043d\u0443\u0436\u043d\u044b\u0435 Linux\u2011\u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0431\u0435\u0437\u00a0\u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e\u0439 VM \u043f\u0440\u0438\u00a0\u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0441\u0431\u043e\u0440\u043a\u0430\u0445.<\/p>\n<\/li>\n<li>\n<p><strong>Go<\/strong>: \u041d\u0443, \u0442\u0443\u0442 \u0432\u0441\u0451 \u043f\u043e\u043d\u044f\u0442\u043d\u043e.<\/p>\n<\/li>\n<\/ul>\n<h2>\u0421\u0431\u043e\u0440\u043a\u0430<\/h2>\n<p>\u0422\u0430\u043a \u043a\u0430\u043a\u00a0\u043c\u044b \u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c CGO \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e\u00a0\u043d\u0430\u043c \u043d\u0443\u0436\u043d\u044b \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u0447\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0434\u043b\u044f\u00a0\u0446\u0435\u043b\u0435\u0432\u043e\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b (Linux x86_64), \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0430\u00a0macOS \u043d\u0435\u0442. \u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c C \u043f\u043e\u0434\u00a0\u043b\u044e\u0431\u044b\u0435 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b, \u044f \u0434\u0430\u0432\u043d\u043e \u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0441\u044c zig \u0434\u043b\u044f\u00a0\u044d\u0442\u0438\u0445 \u0434\u0435\u043b, \u043f\u043e\u0442\u043e\u043c\u0443 \u0438\u0437\u043e\u0431\u0440\u0435\u0442\u0430\u0442\u044c \u043d\u043e\u0432\u043e\u0433\u043e \u043d\u0435\u00a0\u0441\u0442\u0430\u043b. \u0412\u043e\u043e\u0431\u0449\u0435 zig \u0445\u043e\u0440\u043e\u0448\u043e \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0432\u043e\u00a0\u043c\u043d\u043e\u0433\u0438\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u044b, \u0442\u0430\u043a \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0434\u043b\u044f\u00a0Rust \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0447\u0435\u0440\u0435\u0437 cargo zigbuild, \u043d\u043e\u00a0\u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440 \u0442\u0443\u0442 \u043d\u0435\u00a0\u043f\u0440\u043e\u00a0\u044d\u0442\u043e.<\/p>\n<p><strong>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 Zig<\/strong><\/p>\n<p>\u041f\u0435\u0440\u0432\u044b\u043c \u0434\u0435\u043b\u043e\u043c Zig\u00a0\u2014 \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0448\u0438\u043c \u043c\u043e\u0441\u0442\u043e\u043c \u0434\u043b\u044f\u00a0\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 C\u2011\u043a\u043e\u0434\u0430 \u043f\u043e\u0434\u00a0Linux.<\/p>\n<pre><code>brew install zig<\/code><\/pre>\n<p><strong>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 sysroot<\/strong><\/p>\n<p>\u0412\u00a0sysroot \u0431\u0443\u0434\u0443\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0438 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0438 \u0434\u043b\u044f\u00a0\u0446\u0435\u043b\u0435\u0432\u043e\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b, \u0438\u043c\u0438 zig \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u0440\u0438\u00a0\u0441\u0431\u043e\u0440\u043a\u0435.<\/p>\n<p>\u0421\u043e\u0437\u0434\u0430\u0451\u043c \u043f\u0430\u043f\u043a\u0443 \u0434\u043b\u044f\u00a0sysroot:<\/p>\n<pre><code>mkdir -p linux-sysroot<\/code><\/pre>\n<p>\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 Ubuntu:<\/p>\n<pre><code>docker run -it ubuntu:latest bash<\/code><\/pre>\n<p>\u0412\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u043c \u043f\u0430\u043a\u0435\u0442\u044b \u0438 \u0441\u0442\u0430\u0432\u0438\u043c \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438:<\/p>\n<pre><code>apt update apt install -y libgtk-3-dev libwebkit2gtk-4.0-dev<\/code><\/pre>\n<p>\u0423\u00a0\u043c\u0435\u043d\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u043e\u0441\u044c \u043e\u043a\u043e\u043b\u043e \u0433\u0438\u0433\u0430\u0431\u0430\u0439\u0442\u0430 \u0444\u0430\u0439\u043b\u043e\u0432, \u043a\u00a0\u0441\u043b\u043e\u0432\u0443 \u0438\u0442\u043e\u0433\u043e\u0432\u044b\u0439 sysroot \u0441\u0442\u043e\u043b\u044c\u043a\u043e \u0438 \u0437\u0430\u043d\u0438\u043c\u0430\u043b \u0432\u00a0\u0431\u0443\u0434\u0443\u0449\u0435\u043c, \u044f \u0434\u0443\u043c\u0430\u044e \u043c\u043e\u0436\u043d\u043e \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u043e\u0442\u00a0\u0442\u0443\u0434\u0430 \u043c\u043d\u043e\u0433\u043e\u00a0\u043b\u0438\u0448\u043d\u0435\u0433\u043e \u0447\u0442\u043e\u0431 \u043d\u0435\u00a0\u0440\u0430\u0441\u0445\u043e\u0434\u043e\u0432\u0430\u0442\u044c \u043c\u0435\u0441\u0442\u043e \u043d\u0430\u00a0\u0434\u0438\u0441\u043a\u0435.<\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u0435\u043c \u043d\u0443\u0436\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u043d\u0430\u00a0\u0445\u043e\u0441\u0442, \u0434\u043b\u044f\u00a0\u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0430 \u0430\u0440\u0445\u0438\u0432\u0438\u0440\u0443\u044e \u0432\u00a0tar, \u0442\u0430\u043a \u043a\u0430\u043a\u00a0\u043f\u0440\u0438\u00a0\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0438\u0437\u00a0\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u043d\u0430\u00a0\u0445\u043e\u0441\u0442 \u043b\u043e\u043c\u0430\u043b\u0438\u0441\u044c \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430\u00a0\u0444\u0430\u0439\u043b\u044b \u0447\u0442\u043e\u00a0\u0432\u00a0\u0438\u0442\u043e\u0433\u0435 \u043d\u0435\u00a0\u0434\u0430\u0432\u0430\u043b\u043e \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435.<\/p>\n<pre><code>tar -czf \/tmp\/sysroot.tar.gz \/usr\/lib\/x86_64-linux-gnu \/usr\/include tar -czf \/tmp\/wayland.tar.gz \/usr\/share\/pkgconfig\/wayland-protocols.pc \/usr\/share\/wayland-protocols<\/code><\/pre>\n<p>\u0412\u044b\u0445\u043e\u0434\u0438\u043c \u0438\u0437 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 <code>exit<\/code><\/p>\n<p>\u0418 \u043d\u0430\u0439\u0434\u0435\u043c id \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0432\u00a0\u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043c\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438:<\/p>\n<pre><code>docker ps -a<\/code><\/pre>\n<p>\u041a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u0444\u0430\u0439\u043b\u044b \u043d\u0430\u00a0\u0445\u043e\u0441\u0442 \u0438 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u044b\u0432\u0430\u0435\u043c:<\/p>\n<pre><code>docker cp &lt;container_id&gt;:\/tmp\/sysroot.tar.gz . docker cp &lt;container_id&gt;:\/tmp\/wayland.tar.gz . tar -xzf sysroot.tar.gz -C .\/linux-sysroot tar -xzf wayland.tar.gz -C .\/linux-sysroot<\/code><\/pre>\n<blockquote>\n<p>\u0435\u0441\u043b\u0438 \u0432\u0430\u0448\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0442\u044f\u043d\u0435\u0442 \u0434\u0440\u0443\u0433\u0438\u0435 C \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438, \u0442\u043e \u043f\u0440\u043e\u0434\u0435\u043b\u0430\u0439\u0442\u0435 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0438 \u0441\u00a0\u043d\u0438\u043c\u0438, \u043d\u043e <code>\/usr\/lib\/x86_64-linux-gnu<\/code> \u0438 <code>\/usr\/include<\/code> \u0432\u043f\u043e\u043b\u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0445\u0432\u0430\u0442\u0438\u0442\u044c \u0434\u043b\u044f\u00a0\u043c\u043d\u043e\u0433\u043e\u0433\u043e<\/p>\n<\/blockquote>\n<p><strong>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f<\/strong><\/p>\n<p>\u0427\u0442\u043e\u0431\u044b <code>pkg-config<\/code> \u0432\u0438\u0434\u0435\u043b \u043d\u0430\u0448\u0438 <code>.pc<\/code>\u2011\u0444\u0430\u0439\u043b\u044b, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043f\u0443\u0442\u0438:<\/p>\n<pre><code>export PKG_CONFIG_PATH=\"$PWD\/linux-sysroot\/usr\/lib\/x86_64-linux-gnu\/pkgconfig:$PWD\/linux-sysroot\/usr\/share\/pkgconfig:$PKG_CONFIG_PATH\"<\/code><\/pre>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c:<\/p>\n<pre><code>pkg-config --cflags --libs gtk+-3.0 webkit2gtk-4.0<\/code><\/pre>\n<p>\u0415\u0441\u043b\u0438 \u0432\u0430\u0448 \u0432\u044b\u0432\u043e\u0434 \u043f\u043e\u0445\u043e\u0436 \u043d\u0430\u00a0\u043c\u043e\u0439, \u0442\u043e sysroot\u00a0\u0431\u044b\u043b \u043d\u0430\u0439\u0434\u0435\u043d:<\/p>\n<pre><code>-I\/usr\/include\/webkitgtk-4.0 -I\/usr\/include\/gtk-3.0 -I\/usr\/include\/pango-1.0 -I\/usr\/include -I\/usr\/local\/Cellar\/xorgproto\/2024.1\/include -I\/usr\/include\/cairo -I\/usr\/include\/gdk-pixbuf-2.0 -I\/usr\/include\/at-spi2-atk\/2.0 -I\/usr\/include\/at-spi-2.0 -I\/usr\/include\/dbus-1.0 -I\/usr\/lib\/x86_64-linux-gnu\/dbus-1.0\/include -I\/usr\/include\/atk-1.0 -I\/usr\/include\/fribidi -I\/usr\/include\/harfbuzz -I\/usr\/include\/pixman-1 -I\/usr\/include\/uuid -I\/usr\/include\/freetype2 -I\/usr\/include\/libpng16 -I\/usr\/include\/gio-unix-2.0 -I\/usr\/include\/libsoup-2.4 -pthread -I\/usr\/include\/libmount -I\/usr\/include\/blkid -I\/usr\/include\/libxml2 -I\/usr\/include\/glib-2.0 -I\/usr\/lib\/x86_64-linux-gnu\/glib-2.0\/include -L\/usr\/lib\/x86_64-linux-gnu -lwebkit2gtk-4.0 -lgtk-3 -lgdk-3 -lpangocairo-1.0 -lcairo-gobject -lgdk_pixbuf-2.0 -latk-1.0 -lpango-1.0 -lharfbuzz -lcairo -lsoup-2.4 -lgio-2.0 -ljavascriptcoregtk-4.0 -lgobject-2.0 -lglib-2.0<\/code><\/pre>\n<p>\u041d\u0430\u00a0\u044d\u0442\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u0432\u0441\u0435 \u0433\u043e\u0442\u043e\u0432\u043e \u0434\u043b\u044f\u00a0\u0441\u0431\u043e\u0440\u043a\u0438, \u043f\u043e\u00a0\u043d\u0435\u043f\u043e\u043d\u044f\u0442\u043d\u043e\u0439 \u043f\u0440\u0438\u0447\u0438\u043d\u0435 \u043f\u0443\u0442\u0438 \u0438\u0437 <code>pkg-config<\/code> \u043d\u0435\u00a0\u043f\u043e\u0434\u0442\u044f\u043d\u0443\u043b\u0438\u0441\u044c \u0432\u00a0zig \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438, \u043f\u043e\u0442\u043e\u043c\u0443 \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437\u00a0\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u043f\u0440\u043e\u043f\u0438\u0441\u0430\u043b \u0447\u0435\u0440\u0435\u0437 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 <code>-isystem<\/code> \u0434\u043b\u044f <code>zig cc<\/code> \u0438 <code>zig c++<\/code>. \u0427\u0442\u043e\u0431 \u0432\u0430\u043c \u043d\u0435\u00a0\u0437\u0430\u043d\u0438\u043c\u0430\u0442\u044c\u0441\u044f \u044d\u0442\u0438\u043c \u043f\u0440\u0438\u0432\u043e\u0436\u0443 \u043d\u0438\u0436\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0432\u0448\u0438\u0439\u0441\u044f \u0441\u043f\u0438\u0441\u043e\u043a.<\/p>\n<pre><code class=\"bash\">#!\/bin\/bash SYSROOT=\"$PWD\/linux-sysroot\" INCLUDE_PATHS=(   \"$SYSROOT\/usr\/include\"   \"$SYSROOT\/usr\/include\/webkitgtk-4.0\"   \"$SYSROOT\/usr\/include\/gtk-3.0\"   \"$SYSROOT\/usr\/include\/glib-2.0\"   \"$SYSROOT\/usr\/lib\/x86_64-linux-gnu\/glib-2.0\/include\"   \"$SYSROOT\/usr\/include\/pango-1.0\"   \"$SYSROOT\/usr\/include\/harfbuzz\"   \"$SYSROOT\/usr\/include\/cairo\"   \"$SYSROOT\/usr\/include\/gdk-pixbuf-2.0\"   \"$SYSROOT\/usr\/include\/at-spi2-atk\/2.0\"   \"$SYSROOT\/usr\/include\/at-spi-2.0\"   \"$SYSROOT\/usr\/include\/dbus-1.0\"   \"$SYSROOT\/usr\/lib\/x86_64-linux-gnu\/dbus-1.0\/include\"   \"$SYSROOT\/usr\/include\/atk-1.0\"   \"$SYSROOT\/usr\/include\/fribidi\"   \"$SYSROOT\/usr\/include\/pixman-1\"   \"$SYSROOT\/usr\/include\/uuid\"   \"$SYSROOT\/usr\/include\/freetype2\"   \"$SYSROOT\/usr\/include\/libpng16\"   \"$SYSROOT\/usr\/include\/gio-unix-2.0\"   \"$SYSROOT\/usr\/include\/libsoup-2.4\"   \"$SYSROOT\/usr\/include\/libmount\"   \"$SYSROOT\/usr\/include\/blkid\"   \"$SYSROOT\/usr\/include\/libxml2\"   \"$SYSROOT\/usr\/lib\/x86_64-linux-gnu\" )  ISYSTEM_FLAGS=$(printf \" -isystem %s\" \"${INCLUDE_PATHS[@]}\")  CGO_ENABLED=1 \\ GOOS=linux \\ GOARCH=amd64 \\ CC=\"zig cc -target x86_64-linux-gnu$ISYSTEM_FLAGS\" \\ CXX=\"zig c++ -target x86_64-linux-gnu$ISYSTEM_FLAGS\" \\ CGO_LDFLAGS=\"-L$SYSROOT\/usr\/lib\/x86_64-linux-gnu\" \\ PKG_CONFIG_PATH=\"$SYSROOT\/usr\/lib\/x86_64-linux-gnu\/pkgconfig:$SYSROOT\/usr\/share\/pkgconfig\" \\ go build -o $RELEASE_DIR\/WebViewApp-nix-amd64 -ldflags=\"-s -w\" main.go <\/code><\/pre>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0441\u043e\u0431\u0440\u0430\u043b\u0441\u044f \u0437\u0430\u0432\u0435\u0442\u043d\u044b\u0439 \u0444\u0430\u0439\u043b\u0438\u043a \u0438 \u043a\u0430\u043a\u0438\u043c\u2011\u0442\u043e \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0435\u0449\u0451 \u0438 \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u043b. \u041a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f \u0440\u0430\u043d\u0435\u0435 \u043c\u043e\u0436\u043d\u043e \u0441\u043c\u0435\u043b\u043e \u0443\u0434\u0430\u043b\u044f\u0442\u044c. \u0422\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u043c \u043f\u0443\u0442\u0451\u043c \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0438 \u043f\u043e\u0434 arm \u0438 \u0432\u043e\u043e\u0431\u0449\u0435 \u0447\u0442\u043e \u0443\u0433\u043e\u0434\u043d\u043e.<\/p>\n<h2>\u0418\u0442\u043e\u0433<\/h2>\n<p>\u042f \u0432\u00a0\u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0439 \u0440\u0430\u0437 \u043f\u043e\u0440\u0430\u0436\u0430\u044e\u0441\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044f\u043c\u0438 zig \u0438 \u0431\u0435\u0441\u043f\u043e\u043c\u043e\u0449\u043d\u043e\u0441\u0442\u044c\u044e go \u0432\u00a0\u043f\u043b\u0430\u043d\u0435 \u0433\u0438\u0431\u043a\u043e\u0441\u0442\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438.<\/p>\n<p>\u0415\u0441\u043b\u0438 \u0443\u00a0\u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u043f\u043e\u0445\u043e\u0436\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430, \u043d\u0430\u0434\u0435\u044e\u0441\u044c, \u044d\u0442\u043e\u0442 \u0433\u0430\u0439\u0434 \u043f\u043e\u043c\u043e\u0436\u0435\u0442. \u0412\u043e\u043f\u0440\u043e\u0441\u044b \u0438\u043b\u0438\u00a0\u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u00a0\u2014 \u043f\u0438\u0448\u0438\u0442\u0435 \u0432\u00a0\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445!<\/p>\n<p><sub>\u0437\u044b. \u043c\u043e\u044f \u043f\u0435\u0440\u0432\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f \u043d\u0430\u00a0\u0434\u0430\u043d\u043d\u043e\u043c \u0440\u0435\u0441\u0443\u0440\u0441\u0435, \u0442\u0430\u043a \u0447\u0442\u043e\u00a0\u043d\u0430\u0434\u0435\u044e\u0441\u044c \u043d\u0435\u00a0\u043d\u0430\u0440\u0443\u0448\u0438\u043b \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u043c\u0435\u0441\u0442\u043d\u044b\u0445 \u0440\u0435\u043b\u0438\u0433\u0438\u0439<\/sub><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/894426\/\"> https:\/\/habr.com\/ru\/articles\/894426\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<h2>\u041f\u0440\u043e\u043b\u043e\u0433<\/h2>\n<p>\u041d\u0435\u0434\u0430\u0432\u043d\u043e \u044f \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0441\u044f \u0441\u00a0\u0437\u0430\u0434\u0430\u0447\u0435\u0439 \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0441\u0432\u043e\u0451 Go\u2011\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e\u0435 \u0432\u043e\u043a\u0440\u0443\u0433 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 <code>github.com\/webview\/webview_go<\/code>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0431\u0451\u0440\u0442\u043a\u043e\u0439 \u0434\u043b\u044f\u00a0C\/C++ \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 webview, \u0434\u043b\u044f\u00a0Linux, \u0438\u0437\u00a0\u0447\u0435\u0433\u043e \u0432\u044b\u0442\u0435\u043a\u0430\u0435\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f CGO. \u041a\u0430\u0437\u0430\u043b\u043e\u0441\u044c\u00a0\u0431\u044b, \u0447\u0442\u043e\u00a0\u0441\u043b\u043e\u0436\u043d\u043e\u0433\u043e? \u0423\u043a\u0430\u0436\u0438 GOOS=linux, \u043f\u0440\u043e\u043f\u0438\u0448\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 CC= \u0438 CXX=, \u0432\u044b\u043f\u043e\u043b\u043d\u0438 go build\u00a0\u2014 \u0438 \u0433\u043e\u0442\u043e\u0432\u043e. \u041d\u043e\u00a0\u043d\u0435\u0442, CGO \u0438 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u0432\u0440\u043e\u0434\u0435 GTK \u043f\u0440\u0435\u0432\u0440\u0430\u0442\u0438\u043b\u0438 \u044d\u0442\u043e \u0432\u00a0\u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0439 \u043a\u0432\u0435\u0441\u0442. \u041f\u043e\u0441\u043b\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0447\u0430\u0441\u043e\u0432 \u0431\u043e\u0440\u044c\u0431\u044b \u0441\u00a0\u043e\u0448\u0438\u0431\u043a\u0430\u043c\u0438 \u0432\u0440\u043e\u0434\u0435 <code>Package webkit2gtk-4.0 was not found in the pkg-config search path.<\/code>, \u044f \u043d\u0430\u043a\u043e\u043d\u0435\u0446\u2011\u0442\u043e \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043b\u0441\u044f, \u043a\u0430\u043a\u00a0\u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0431\u0435\u0437\u00a0\u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f Zig \u0438 Docker (<em>\u044f \u0437\u043d\u0430\u044e \u0447\u0442\u043e\u00a0\u043d\u0430\u00a0macOS \u0434\u043e\u043a\u0435\u0440 \u043a\u0440\u0443\u0442\u0438\u0442\u0441\u044f \u0432\u00a0\u0432\u0438\u0440\u0442\u0443\u0430\u043b\u043a\u0435, \u0442\u0443\u0442 \u043e\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f\u00a0\u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u043e\u0432 \u0434\u043b\u044f\u00a0\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438<\/em>). \u0412\u00a0\u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0434\u0435\u043b\u044e\u0441\u044c \u0441\u0432\u043e\u0438\u043c \u0440\u0435\u0448\u0435\u043d\u0438\u0435\u043c\u00a0\u2014 \u043d\u0430\u0434\u0435\u044e\u0441\u044c, \u043e\u043d\u043e \u0441\u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442 \u0432\u0430\u043c \u0432\u0440\u0435\u043c\u044f.<\/p>\n<h2>\u0418\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b<\/h2>\n<ul>\n<li>\n<p><strong>Zig<\/strong>: \u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0434\u043b\u044f\u00a0C\u2011\u043a\u043e\u0434\u0430 \u0432\u00a0CGO. Zig \u0443\u043c\u0435\u0435\u0442 \u043a\u0440\u043e\u0441\u0441\u2011\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044e \u0438 \u0437\u0430\u043c\u0435\u043d\u044f\u0435\u0442 GCC\/Clang \u0434\u043b\u044f\u00a0\u0441\u0431\u043e\u0440\u043a\u0438 \u043f\u043e\u0434\u00a0Linux.<\/p>\n<\/li>\n<li>\n<p><strong>Docker<\/strong>: \u0427\u0442\u043e\u0431\u044b \u0432\u044b\u0442\u0430\u0449\u0438\u0442\u044c \u043d\u0443\u0436\u043d\u044b\u0435 Linux\u2011\u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0431\u0435\u0437\u00a0\u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e\u0439 VM \u043f\u0440\u0438\u00a0\u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0441\u0431\u043e\u0440\u043a\u0430\u0445.<\/p>\n<\/li>\n<li>\n<p><strong>Go<\/strong>: \u041d\u0443, \u0442\u0443\u0442 \u0432\u0441\u0451 \u043f\u043e\u043d\u044f\u0442\u043d\u043e.<\/p>\n<\/li>\n<\/ul>\n<h2>\u0421\u0431\u043e\u0440\u043a\u0430<\/h2>\n<p>\u0422\u0430\u043a \u043a\u0430\u043a\u00a0\u043c\u044b \u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c CGO \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e\u00a0\u043d\u0430\u043c \u043d\u0443\u0436\u043d\u044b \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u0447\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0434\u043b\u044f\u00a0\u0446\u0435\u043b\u0435\u0432\u043e\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b (Linux x86_64), \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0430\u00a0macOS \u043d\u0435\u0442. \u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c C \u043f\u043e\u0434\u00a0\u043b\u044e\u0431\u044b\u0435 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b, \u044f \u0434\u0430\u0432\u043d\u043e \u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0441\u044c zig \u0434\u043b\u044f\u00a0\u044d\u0442\u0438\u0445 \u0434\u0435\u043b, \u043f\u043e\u0442\u043e\u043c\u0443 \u0438\u0437\u043e\u0431\u0440\u0435\u0442\u0430\u0442\u044c \u043d\u043e\u0432\u043e\u0433\u043e \u043d\u0435\u00a0\u0441\u0442\u0430\u043b. \u0412\u043e\u043e\u0431\u0449\u0435 zig \u0445\u043e\u0440\u043e\u0448\u043e \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0432\u043e\u00a0\u043c\u043d\u043e\u0433\u0438\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u044b, \u0442\u0430\u043a \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0434\u043b\u044f\u00a0Rust \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0447\u0435\u0440\u0435\u0437 cargo zigbuild, \u043d\u043e\u00a0\u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440 \u0442\u0443\u0442 \u043d\u0435\u00a0\u043f\u0440\u043e\u00a0\u044d\u0442\u043e.<\/p>\n<p><strong>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 Zig<\/strong><\/p>\n<p>\u041f\u0435\u0440\u0432\u044b\u043c \u0434\u0435\u043b\u043e\u043c Zig\u00a0\u2014 \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0448\u0438\u043c \u043c\u043e\u0441\u0442\u043e\u043c \u0434\u043b\u044f\u00a0\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 C\u2011\u043a\u043e\u0434\u0430 \u043f\u043e\u0434\u00a0Linux.<\/p>\n<pre><code>brew install zig<\/code><\/pre>\n<p><strong>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 sysroot<\/strong><\/p>\n<p>\u0412\u00a0sysroot \u0431\u0443\u0434\u0443\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0438 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0438 \u0434\u043b\u044f\u00a0\u0446\u0435\u043b\u0435\u0432\u043e\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b, \u0438\u043c\u0438 zig \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u0440\u0438\u00a0\u0441\u0431\u043e\u0440\u043a\u0435.<\/p>\n<p>\u0421\u043e\u0437\u0434\u0430\u0451\u043c \u043f\u0430\u043f\u043a\u0443 \u0434\u043b\u044f\u00a0sysroot:<\/p>\n<pre><code>mkdir -p linux-sysroot<\/code><\/pre>\n<p>\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 Ubuntu:<\/p>\n<pre><code>docker run -it ubuntu:latest bash<\/code><\/pre>\n<p>\u0412\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u043c \u043f\u0430\u043a\u0435\u0442\u044b \u0438 \u0441\u0442\u0430\u0432\u0438\u043c \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438:<\/p>\n<pre><code>apt update apt install -y libgtk-3-dev libwebkit2gtk-4.0-dev<\/code><\/pre>\n<p>\u0423\u00a0\u043c\u0435\u043d\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u043e\u0441\u044c \u043e\u043a\u043e\u043b\u043e \u0433\u0438\u0433\u0430\u0431\u0430\u0439\u0442\u0430 \u0444\u0430\u0439\u043b\u043e\u0432, \u043a\u00a0\u0441\u043b\u043e\u0432\u0443 \u0438\u0442\u043e\u0433\u043e\u0432\u044b\u0439 sysroot \u0441\u0442\u043e\u043b\u044c\u043a\u043e \u0438 \u0437\u0430\u043d\u0438\u043c\u0430\u043b \u0432\u00a0\u0431\u0443\u0434\u0443\u0449\u0435\u043c, \u044f \u0434\u0443\u043c\u0430\u044e \u043c\u043e\u0436\u043d\u043e \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u043e\u0442\u00a0\u0442\u0443\u0434\u0430 \u043c\u043d\u043e\u0433\u043e\u00a0\u043b\u0438\u0448\u043d\u0435\u0433\u043e \u0447\u0442\u043e\u0431 \u043d\u0435\u00a0\u0440\u0430\u0441\u0445\u043e\u0434\u043e\u0432\u0430\u0442\u044c \u043c\u0435\u0441\u0442\u043e \u043d\u0430\u00a0\u0434\u0438\u0441\u043a\u0435.<\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u0435\u043c \u043d\u0443\u0436\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u043d\u0430\u00a0\u0445\u043e\u0441\u0442, \u0434\u043b\u044f\u00a0\u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0430 \u0430\u0440\u0445\u0438\u0432\u0438\u0440\u0443\u044e \u0432\u00a0tar, \u0442\u0430\u043a \u043a\u0430\u043a\u00a0\u043f\u0440\u0438\u00a0\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0438\u0437\u00a0\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u043d\u0430\u00a0\u0445\u043e\u0441\u0442 \u043b\u043e\u043c\u0430\u043b\u0438\u0441\u044c \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430\u00a0\u0444\u0430\u0439\u043b\u044b \u0447\u0442\u043e\u00a0\u0432\u00a0\u0438\u0442\u043e\u0433\u0435 \u043d\u0435\u00a0\u0434\u0430\u0432\u0430\u043b\u043e \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435.<\/p>\n<pre><code>tar -czf \/tmp\/sysroot.tar.gz \/usr\/lib\/x86_64-linux-gnu \/usr\/include tar -czf \/tmp\/wayland.tar.gz \/usr\/share\/pkgconfig\/wayland-protocols.pc \/usr\/share\/wayland-protocols<\/code><\/pre>\n<p>\u0412\u044b\u0445\u043e\u0434\u0438\u043c \u0438\u0437 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 <code>exit<\/code><\/p>\n<p>\u0418 \u043d\u0430\u0439\u0434\u0435\u043c id \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0432\u00a0\u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043c\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438:<\/p>\n<pre><code>docker ps -a<\/code><\/pre>\n<p>\u041a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u0444\u0430\u0439\u043b\u044b \u043d\u0430\u00a0\u0445\u043e\u0441\u0442 \u0438 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u044b\u0432\u0430\u0435\u043c:<\/p>\n<pre><code>docker cp &lt;container_id&gt;:\/tmp\/sysroot.tar.gz . docker cp &lt;container_id&gt;:\/tmp\/wayland.tar.gz . tar -xzf sysroot.tar.gz -C .\/linux-sysroot tar -xzf wayland.tar.gz -C .\/linux-sysroot<\/code><\/pre>\n<blockquote>\n<p>\u0435\u0441\u043b\u0438 \u0432\u0430\u0448\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0442\u044f\u043d\u0435\u0442 \u0434\u0440\u0443\u0433\u0438\u0435 C \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438, \u0442\u043e \u043f\u0440\u043e\u0434\u0435\u043b\u0430\u0439\u0442\u0435 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0438 \u0441\u00a0\u043d\u0438\u043c\u0438, \u043d\u043e <code>\/usr\/lib\/x86_64-linux-gnu<\/code> \u0438 <code>\/usr\/include<\/code> \u0432\u043f\u043e\u043b\u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0445\u0432\u0430\u0442\u0438\u0442\u044c \u0434\u043b\u044f\u00a0\u043c\u043d\u043e\u0433\u043e\u0433\u043e<\/p>\n<\/blockquote>\n<p><strong>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f<\/strong><\/p>\n<p>\u0427\u0442\u043e\u0431\u044b <code>pkg-config<\/code> \u0432\u0438\u0434\u0435\u043b \u043d\u0430\u0448\u0438 <code>.pc<\/code>\u2011\u0444\u0430\u0439\u043b\u044b, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043f\u0443\u0442\u0438:<\/p>\n<pre><code>export PKG_CONFIG_PATH=\"$PWD\/linux-sysroot\/usr\/lib\/x86_64-linux-gnu\/pkgconfig:$PWD\/linux-sysroot\/usr\/share\/pkgconfig:$PKG_CONFIG_PATH\"<\/code><\/pre>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c:<\/p>\n<pre><code>pkg-config --cflags --libs gtk+-3.0 webkit2gtk-4.0<\/code><\/pre>\n<p>\u0415\u0441\u043b\u0438 \u0432\u0430\u0448 \u0432\u044b\u0432\u043e\u0434 \u043f\u043e\u0445\u043e\u0436 \u043d\u0430\u00a0\u043c\u043e\u0439, \u0442\u043e sysroot\u00a0\u0431\u044b\u043b \u043d\u0430\u0439\u0434\u0435\u043d:<\/p>\n<pre><code>-I\/usr\/include\/webkitgtk-4.0 -I\/usr\/include\/gtk-3.0 -I\/usr\/include\/pango-1.0 -I\/usr\/include -I\/usr\/local\/Cellar\/xorgproto\/2024.1\/include -I\/usr\/include\/cairo -I\/usr\/include\/gdk-pixbuf-2.0 -I\/usr\/include\/at-spi2-atk\/2.0 -I\/usr\/include\/at-spi-2.0 -I\/usr\/include\/dbus-1.0 -I\/usr\/lib\/x86_64-linux-gnu\/dbus-1.0\/include -I\/usr\/include\/atk-1.0 -I\/usr\/include\/fribidi -I\/usr\/include\/harfbuzz -I\/usr\/include\/pixman-1 -I\/usr\/include\/uuid -I\/usr\/include\/freetype2 -I\/usr\/include\/libpng16 -I\/usr\/include\/gio-unix-2.0 -I\/usr\/include\/libsoup-2.4 -pthread -I\/usr\/include\/libmount -I\/usr\/include\/blkid -I\/usr\/include\/libxml2 -I\/usr\/include\/glib-2.0 -I\/usr\/lib\/x86_64-linux-gnu\/glib-2.0\/include -L\/usr\/lib\/x86_64-linux-gnu -lwebkit2gtk-4.0 -lgtk-3 -lgdk-3 -lpangocairo-1.0 -lcairo-gobject -lgdk_pixbuf-2.0 -latk-1.0 -lpango-1.0 -lharfbuzz -lcairo -lsoup-2.4 -lgio-2.0 -ljavascriptcoregtk-4.0 -lgobject-2.0 -lglib-2.0<\/code><\/pre>\n<p>\u041d\u0430\u00a0\u044d\u0442\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u0432\u0441\u0435 \u0433\u043e\u0442\u043e\u0432\u043e \u0434\u043b\u044f\u00a0\u0441\u0431\u043e\u0440\u043a\u0438, \u043f\u043e\u00a0\u043d\u0435\u043f\u043e\u043d\u044f\u0442\u043d\u043e\u0439 \u043f\u0440\u0438\u0447\u0438\u043d\u0435 \u043f\u0443\u0442\u0438 \u0438\u0437 <code>pkg-config<\/code> \u043d\u0435\u00a0\u043f\u043e\u0434\u0442\u044f\u043d\u0443\u043b\u0438\u0441\u044c \u0432\u00a0zig \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438, \u043f\u043e\u0442\u043e\u043c\u0443 \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437\u00a0\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u043f\u0440\u043e\u043f\u0438\u0441\u0430\u043b \u0447\u0435\u0440\u0435\u0437 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 <code>-isystem<\/code> \u0434\u043b\u044f <code>zig cc<\/code> \u0438 <code>zig c++<\/code>. \u0427\u0442\u043e\u0431 \u0432\u0430\u043c \u043d\u0435\u00a0\u0437\u0430\u043d\u0438\u043c\u0430\u0442\u044c\u0441\u044f \u044d\u0442\u0438\u043c \u043f\u0440\u0438\u0432\u043e\u0436\u0443 \u043d\u0438\u0436\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0432\u0448\u0438\u0439\u0441\u044f \u0441\u043f\u0438\u0441\u043e\u043a.<\/p>\n<pre><code class=\"bash\">#!\/bin\/bash SYSROOT=\"$PWD\/linux-sysroot\" INCLUDE_PATHS=(   \"$SYSROOT\/usr\/include\"   \"$SYSROOT\/usr\/include\/webkitgtk-4.0\"   \"$SYSROOT\/usr\/include\/gtk-3.0\"   \"$SYSROOT\/usr\/include\/glib-2.0\"   \"$SYSROOT\/usr\/lib\/x86_64-linux-gnu\/glib-2.0\/include\"   \"$SYSROOT\/usr\/include\/pango-1.0\"   \"$SYSROOT\/usr\/include\/harfbuzz\"   \"$SYSROOT\/usr\/include\/cairo\"   \"$SYSROOT\/usr\/include\/gdk-pixbuf-2.0\"   \"$SYSROOT\/usr\/include\/at-spi2-atk\/2.0\"   \"$SYSROOT\/usr\/include\/at-spi-2.0\"   \"$SYSROOT\/usr\/include\/dbus-1.0\"   \"$SYSROOT\/usr\/lib\/x86_64-linux-gnu\/dbus-1.0\/include\"   \"$SYSROOT\/usr\/include\/atk-1.0\"   \"$SYSROOT\/usr\/include\/fribidi\"   \"$SYSROOT\/usr\/include\/pixman-1\"   \"$SYSROOT\/usr\/include\/uuid\"   \"$SYSROOT\/usr\/include\/freetype2\"   \"$SYSROOT\/usr\/include\/libpng16\"   \"$SYSROOT\/usr\/include\/gio-unix-2.0\"   \"$SYSROOT\/usr\/include\/libsoup-2.4\"   \"$SYSROOT\/usr\/include\/libmount\"   \"$SYSROOT\/usr\/include\/blkid\"   \"$SYSROOT\/usr\/include\/libxml2\"   \"$SYSROOT\/usr\/lib\/x86_64-linux-gnu\" )  ISYSTEM_FLAGS=$(printf \" -isystem %s\" \"${INCLUDE_PATHS[@]}\")  CGO_ENABLED=1 \\ GOOS=linux \\ GOARCH=amd64 \\ CC=\"zig cc -target x86_64-linux-gnu$ISYSTEM_FLAGS\" \\ CXX=\"zig c++ -target x86_64-linux-gnu$ISYSTEM_FLAGS\" \\ CGO_LDFLAGS=\"-L$SYSROOT\/usr\/lib\/x86_64-linux-gnu\" \\ PKG_CONFIG_PATH=\"$SYSROOT\/usr\/lib\/x86_64-linux-gnu\/pkgconfig:$SYSROOT\/usr\/share\/pkgconfig\" \\ go build -o $RELEASE_DIR\/WebViewApp-nix-amd64 -ldflags=\"-s -w\" main.go <\/code><\/pre>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0441\u043e\u0431\u0440\u0430\u043b\u0441\u044f \u0437\u0430\u0432\u0435\u0442\u043d\u044b\u0439 \u0444\u0430\u0439\u043b\u0438\u043a \u0438 \u043a\u0430\u043a\u0438\u043c\u2011\u0442\u043e \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0435\u0449\u0451 \u0438 \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u043b. \u041a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f \u0440\u0430\u043d\u0435\u0435 \u043c\u043e\u0436\u043d\u043e \u0441\u043c\u0435\u043b\u043e \u0443\u0434\u0430\u043b\u044f\u0442\u044c. \u0422\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u043c \u043f\u0443\u0442\u0451\u043c \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0438 \u043f\u043e\u0434 arm \u0438 \u0432\u043e\u043e\u0431\u0449\u0435 \u0447\u0442\u043e \u0443\u0433\u043e\u0434\u043d\u043e.<\/p>\n<h2>\u0418\u0442\u043e\u0433<\/h2>\n<p>\u042f \u0432\u00a0\u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0439 \u0440\u0430\u0437 \u043f\u043e\u0440\u0430\u0436\u0430\u044e\u0441\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044f\u043c\u0438 zig \u0438 \u0431\u0435\u0441\u043f\u043e\u043c\u043e\u0449\u043d\u043e\u0441\u0442\u044c\u044e go \u0432\u00a0\u043f\u043b\u0430\u043d\u0435 \u0433\u0438\u0431\u043a\u043e\u0441\u0442\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438.<\/p>\n<p>\u0415\u0441\u043b\u0438 \u0443\u00a0\u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u043f\u043e\u0445\u043e\u0436\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430, \u043d\u0430\u0434\u0435\u044e\u0441\u044c, \u044d\u0442\u043e\u0442 \u0433\u0430\u0439\u0434 \u043f\u043e\u043c\u043e\u0436\u0435\u0442. \u0412\u043e\u043f\u0440\u043e\u0441\u044b \u0438\u043b\u0438\u00a0\u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u00a0\u2014 \u043f\u0438\u0448\u0438\u0442\u0435 \u0432\u00a0\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445!<\/p>\n<p><sub>\u0437\u044b. \u043c\u043e\u044f \u043f\u0435\u0440\u0432\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f \u043d\u0430\u00a0\u0434\u0430\u043d\u043d\u043e\u043c \u0440\u0435\u0441\u0443\u0440\u0441\u0435, \u0442\u0430\u043a \u0447\u0442\u043e\u00a0\u043d\u0430\u0434\u0435\u044e\u0441\u044c \u043d\u0435\u00a0\u043d\u0430\u0440\u0443\u0448\u0438\u043b \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u043c\u0435\u0441\u0442\u043d\u044b\u0445 \u0440\u0435\u043b\u0438\u0433\u0438\u0439<\/sub><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/894426\/\"> https:\/\/habr.com\/ru\/articles\/894426\/<\/a><br \/><\/br><\/br><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-453360","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/453360","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=453360"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/453360\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=453360"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=453360"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=453360"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}