{"id":446227,"date":"2025-01-27T03:01:45","date_gmt":"2025-01-27T03:01:45","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=446227"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=446227","title":{"rendered":"<span>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 Qt \u043d\u0430 Windows \u0431\u0435\u0437 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0438 VPN. \u0427\u0430\u0441\u0442\u044c 1. VisualStudio Community + Conan.io<\/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<h4> \u041c\u043e\u0442\u0438\u0432\u0430\u0446\u0438\u044f<\/h4>\n<p> \u0414\u043e \u043f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f Qt Group \u043a \u0441\u0430\u043d\u043a\u0446\u0438\u044f\u043c, \u0434\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 Qt Framework and Tools \u0431\u044b\u043b\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c Qt Online Installer, \u0432\u0432\u0435\u0441\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u0443\u0447\u0435\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 \u0438 \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0449\u0438\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u0432 \u043c\u0435\u043d\u044e. \u041d\u044b\u043d\u0435 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c \u0438\u0437 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438: \u043f\u0440\u0438\u0431\u0435\u0433\u043d\u0443\u0442\u044c \u043a \u043f\u043e\u043c\u043e\u0449\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u043f\u0430\u043a\u0435\u0442\u043d\u044b\u0445 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u043e\u0432 \u0438\u043b\u0438 \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0438\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432. \u0423 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430 \u0435\u0441\u0442\u044c \u0441\u0432\u043e\u0438 \u043f\u043b\u044e\u0441\u044b \u0438 \u043c\u0438\u043d\u0443\u0441\u044b. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 \u0447\u0435\u0440\u0435\u0437 Conan &#8212; \u043e\u0434\u0438\u043d \u0438\u0437 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u043f\u0430\u043a\u0435\u0442\u043d\u044b\u0445 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u043e\u0432 \u0434\u043b\u044f \u0441++ . <\/p>\n<p> <strong>\u0426\u0435\u043b\u0435\u0432\u0430\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430: <\/strong>Windows 10<\/p>\n<p> \u0428\u0430\u0433 0.  \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430<\/p>\n<p>  \u0421\u043a\u0430\u0447\u0438\u0432\u0430\u0435\u043c \u0441 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u0430\u0439\u0442\u0430 VisualStudio Community<\/p>\n<p> <a href=\"https:\/\/visualstudio.microsoft.com\/ru\/downloads\/\" rel=\"noopener noreferrer nofollow\">https:\/\/visualstudio.microsoft.com\/ru\/downloads\/<\/a><\/p>\n<p>\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0442\u043e\u0440 (\u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u043d\u0430\u0431\u043e\u0440 \u00ab\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0421++\u00bb)<\/p>\n<figure class=\"bordered full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/2e9\/2c2\/c20\/2e92c2c20635587f9d5fcf23c5f767a1.png\" width=\"862\" height=\"526\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/2e9\/2c2\/c20\/2e92c2c20635587f9d5fcf23c5f767a1.png\"\/><\/figure>\n<p> \u0428\u0430\u0433 1. \u0421\u043a\u0430\u0447\u0430\u0442\u044c QtCreator \u0438 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442<\/p>\n<p> QtCreator \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0438\u0437 github \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f <a href=\"https:\/\/github.com\/qt-creator\/qt-creator\/releases\/tag\/v15.0.1\" rel=\"noopener noreferrer nofollow\">https:\/\/github.com\/qt-creator\/qt-creator\/releases\/tag\/v15.0.1<\/a><\/p>\n<p> \u0420\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u0430\u0442\u044c \u0430\u0440\u0445\u0438\u0432 \u0441 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a\u0430\u043c\u0438 \u043c\u043e\u0436\u043d\u043e \u0432 \u043b\u044e\u0431\u0443\u044e \u0443\u0434\u043e\u0431\u043d\u0443\u044e \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e.<\/p>\n<p> \u0412 \u043f\u043e\u0434\u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 qtcreator-windows-x64-msvc-15.0.0\\bin \u0431\u0443\u0434\u0435\u0442 \u043b\u0435\u0436\u0430\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0439 \u0444\u0430\u0439\u043b qtcreator.exe<\/p>\n<p> \u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c QtCreator \u0438 \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0440\u043e\u0435\u043a\u0442, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440: conan_qml. <\/p>\n<figure class=\"bordered full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f4d\/11c\/b4f\/f4d11cb4f0b1b903ecb9ebac8b2031ac.png\" width=\"808\" height=\"544\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f4d\/11c\/b4f\/f4d11cb4f0b1b903ecb9ebac8b2031ac.png\"\/><\/figure>\n<p> \u0417\u0430\u043a\u0440\u044b\u0432\u0430\u0435\u043c  QtCreator<\/p>\n<p> \u0428\u0430\u0433 2.  \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 python \u0438 pip  <\/p>\n<p> \u0417\u0430\u0431\u0438\u0440\u0430\u0435\u043c \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0439 \u0440\u0435\u043b\u0438\u0437 \u0441 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u0430\u0439\u0442\u0430 <a href=\"https:\/\/www.python.org\/downloads\/\" rel=\"noopener noreferrer nofollow\">https:\/\/www.python.org\/downloads\/<\/a><\/p>\n<p> \u0412\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u0443\u044e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 <\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e73\/839\/6f9\/e738396f9462ed51b5d3486335604415.png\" width=\"663\" height=\"400\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e73\/839\/6f9\/e738396f9462ed51b5d3486335604415.png\"\/><\/figure>\n<p> \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u0447\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d pip<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/193\/e43\/b85\/193e43b850b7e2fd768edf9408749a9a.png\" width=\"678\" height=\"420\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/193\/e43\/b85\/193e43b850b7e2fd768edf9408749a9a.png\"\/><\/figure>\n<p>\u0416\u043c\u0435\u043c next, \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443, \u0436\u0434\u0435\u043c \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438.<\/p>\n<p> \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043f\u0443\u0442\u044c \u043a \u0434\u0438\u0440\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u0441 python (\u0443 \u043c\u0435\u043d\u044f \u044d\u0442\u043e C:\\Program Files\\Python312) \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f PATH. \u0414\u043e\u043b\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0441\u044f \u043a\u0430\u043a-\u0442\u043e \u0442\u0430\u043a:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/457\/4d5\/86b\/4574d586b3a59525c5a68fd47370570f.png\" width=\"1230\" height=\"501\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/457\/4d5\/86b\/4574d586b3a59525c5a68fd47370570f.png\"\/><\/figure>\n<p> \u0428\u0430\u0433 2. \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 conan<\/p>\n<p> \u0421\u0442\u0430\u0432\u0438\u043c \u043f\u0430\u043a\u0435\u0442\u043d\u044b\u0439 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440 conan \u0447\u0435\u0440\u0435\u0437 \u043f\u0430\u043a\u0435\u0442\u043d\u044b\u0439 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440 pip \ud83d\ude42<\/p>\n<blockquote>\n<p> pip install conan==2.10.2<\/p>\n<\/blockquote>\n<p> \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0447\u0442\u043e conan \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d:<\/p>\n<blockquote>\n<p> conan -v<\/p>\n<\/blockquote>\n<blockquote>\n<p> Conan version 2.10.2<\/p>\n<\/blockquote>\n<p> \u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c \u043f\u0440\u043e\u0444\u0438\u043b\u044c conan:<\/p>\n<blockquote>\n<p> conan profile detect -f<\/p>\n<\/blockquote>\n<blockquote>\n<p> detect_api: Found msvc 17 <\/p>\n<p> Detected profile:<\/p>\n<p> [settings]<\/p>\n<p> arch=x86_64<\/p>\n<p> build_type=Release<\/p>\n<p> compiler=msvc<\/p>\n<p> compiler.cppstd=14<\/p>\n<p> compiler.runtime=dynamic<\/p>\n<p> compiler.version=194<\/p>\n<p> os=Windows<\/p>\n<\/blockquote>\n<p> \u041f\u0440\u043e\u0444\u0438\u043b\u044c \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 C:\\Users\\\u0418\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\\.conan2\\profiles\\default<\/p>\n<p> \u0428\u0430\u0433 3. \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a<\/p>\n<p>\u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e conan_qml. \u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c cmd \u0432 \u044d\u0442\u043e\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 (\u0432 \u0430\u0434\u0440\u0435\u0441\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 \u043f\u0440\u043e\u0432\u043e\u0434\u043d\u0438\u043a\u0430 \u0441\u0442\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u043f\u0443\u0442\u044c, \u0432\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0442\u0440\u0438 \u0431\u0443\u043a\u0432\u044b cmd, \u043d\u0430\u0436\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u043a\u043b\u0430\u0432\u0438\u0448\u0430 enter).<\/p>\n<p> \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u043a\u0430\u043a\u0438\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 Qt \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b (\u0441\u0435\u0439\u0447\u0430\u0441 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0432\u0435\u0440\u0441\u0438\u0438 \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 5.15.6 \u0434\u043e  qt\/6.7.3):<\/p>\n<blockquote>\n<p> conan search qt<\/p>\n<\/blockquote>\n<p> \u041c\u043d\u0435 \u043d\u0443\u0436\u043d\u0430 \u0432\u0435\u0440\u0441\u0438\u044f qt\/5.15.12, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0431\u0443\u0434\u0435\u043c \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u0435\u0451.<\/p>\n<p> \u0421\u043e\u0437\u0434\u0430\u0435\u043c  \u0444\u0430\u0439\u043b conanfile.py \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 conan_qml<\/p>\n<blockquote>\n<p> from conan import ConanFile<\/p>\n<p>from conan.tools.cmake import CMakeToolchain, CMake, cmake_layout, CMakeDeps<\/p>\n<p>import os<\/p>\n<p> <\/p>\n<p>class ExampleRecipe(ConanFile):<\/p>\n<p>\u00a0 \u00a0 generators = &#171;CMakeDeps&#187;, &#171;CMakeToolchain&#187;<\/p>\n<p>\u00a0 \u00a0 # Binary configuration<\/p>\n<p>\u00a0 \u00a0 settings = &#171;os&#187;, &#171;compiler&#187;, &#171;build_type&#187;, &#171;arch&#187;<\/p>\n<p>\u00a0 \u00a0 options = {&#171;shared&#187;: [True, False], &#171;fPIC&#187;: [True, False]}<\/p>\n<p>\u00a0 \u00a0 default_options = {&#171;shared&#187;: False, &#171;fPIC&#187;: True}<\/p>\n<p> <\/p>\n<p>\u00a0 \u00a0 def requirements(self):<\/p>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 self.requires(&#171;qt\/5.15.12&#187;)<\/p>\n<p> <\/p>\n<p>\u00a0 \u00a0 def layout(self):<\/p>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 self.folders.build = &#171;cmake-build-{}&#187;.format(str(self.settings.build_type).lower())<\/p>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 self.folders.generators = os.path.join(os.path.curdir, &#171;conan_find_libs&#187;)<\/p>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 self.cpp.build.libdirs = os.path.join(self.folders.generators, &#171;lib&#187;) # write the .libs to the library folder under build<\/p>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 self.cpp.build.bindirs = os.path.join(self.folders.generators, &#171;bin&#187;) # write the .dll to the bin folder under build<\/p>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 self.folders.imports = self.folders.build<\/p>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 self.folders.source = &#171;src&#187;<\/p>\n<p> <\/p>\n<p>\u00a0 \u00a0 # \u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c \u043e\u043f\u0446\u0438\u0438 \u043f\u0430\u043a\u0435\u0442\u043e\u0432<\/p>\n<p>\u00a0 \u00a0 def configure(self):<\/p>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 # O\u0431\u0449\u0438\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438<\/p>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 self.options[&#171;qt&#187;].shared = True<\/p>\n<p> <\/p>\n<p>\u00a0 \u00a0 def source(self):<\/p>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 # In the source method, the current directory == self.source_folder<\/p>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 assert self.source_folder == os.getcwd()<\/p>\n<p> <\/p>\n<p>\u00a0 \u00a0 # copy the libs to build\/bin and build\/lib folders<\/p>\n<p>\u00a0 \u00a0 def generate(self):<\/p>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 print(&#171;CWD&#187;, os.getcwd())<\/p>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 print(&#171;SOURCE&#187;, self.source_folder)<\/p>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 print(&#171;BUILD&#187;, self.build_folder)<\/p>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 print(&#171;BUILD2&#187;, self.cpp.build)<\/p>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 print(&#171;LIBDIRS&#187;, self.cpp.build.libdirs)<\/p>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 print(&#171;BINDIRS&#187;, self.cpp.build.bindirs)<\/p>\n<p> <\/p>\n<p>\u00a0 \u00a0 def package(self):<\/p>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 cmake = CMake(self)<\/p>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 cmake.install()<\/p>\n<p> <\/p>\n<p>\u00a0 \u00a0 def deploy(self):<\/p>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 self.copy(self, &#171;*&#187;, src=self.package_folder, dst=self.deploy_folder)<\/p>\n<\/blockquote>\n<p> \u0421\u043b\u0435\u0434\u0443\u0435\u0442 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0441\u0442\u0440\u043e\u043a\u0443:<\/p>\n<blockquote>\n<p> self.folders.generators = os.path.join(os.path.curdir, &#171;conan_find_libs&#187;)<\/p>\n<\/blockquote>\n<p> \u0422\u0443\u0442 \u0443\u043a\u0430\u0437\u0430\u043d\u043e \u043a\u0443\u0434\u0430 \u0431\u0443\u0434\u0443\u0442 \u043f\u043e\u043c\u0435\u0449\u0435\u043d\u044b \u0431\u0443\u0434\u0443\u0449\u0438\u0435 cmake \u0444\u0430\u0439\u043b\u044b \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u043f\u0430\u043a\u0435\u0442\u043e\u0432.<\/p>\n<p> \u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u0441 \u0444\u043b\u0430\u0433\u0430\u043c\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0449\u0438\u043c\u0438:<\/p>\n<p>&#8212;  \u0442\u0438\u043f \u0441\u0431\u043e\u0440\u043a\u0438 ( build_type=Release\\Debug); <\/p>\n<p>&#8212; \u0437\u0430\u043f\u0443\u0441\u043a \u0441\u0431\u043e\u0440\u043a\u0438 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a\u043e\u0432 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e, \u0435\u0441\u043b\u0438 \u0438\u0445 \u043d\u0435\u0442 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 (&#8212;build=missing); <\/p>\n<p>&#8212; \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u0434\u043b\u044f \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 (&#8212;deployer=full_deploy).<\/p>\n<blockquote>\n<p> conan install . -s build_type=Debug &#8212;build=missing &#8212;deployer=full_deploy<\/p>\n<\/blockquote>\n<p> \u041a\u0430\u043a\u043e\u0435-\u0442\u043e \u0432\u0440\u0435\u043c\u044f conan \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043a\u0430\u0442\u044c \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0435 \u0437\u0435\u0440\u043a\u0430\u043b\u0430:<\/p>\n<blockquote>\n<p> qt\/5.15.12: WARN: network: Error downloading file https:\/\/download.qt.io\/official_releases\/qt\/5.15\/5.15.12\/single\/qt-everywhere-opensource-src-5.15.12.tar.xz: &#8216;HTTPSConnectionPool(host=&#8217;download.qt.io&#8217;, port=443): Max retries exceeded with url: \/official_releases\/qt\/5.15\/5.15.12\/single\/qt-everywhere-opensource-src-5.15.12.tar.xz (Caused by ConnectTimeoutError(&lt;urllib3.connection.HTTPSConnection object at 0x0000024FF62CB890&gt;, &#8216;Connection to download.qt.io timed out. (connect timeout=30)&#8217;))&#8217;<\/p>\n<p> qt\/5.15.12: Waiting 5 seconds to retry&#8230;<\/p>\n<\/blockquote>\n<p> \u041f\u043e\u0441\u043b\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u0441\u0431\u043e\u0440\u043a\u0438 \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043f\u0430\u043a\u0435\u0442\u043e\u0432, \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 full_deploy \u0431\u0443\u0434\u0443\u0442 \u043b\u0435\u0436\u0430\u0442\u044c \u0441\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438, \u0432 conan_find_libs \u0431\u0443\u0434\u0443\u0442 \u043b\u0435\u0436\u0430\u0442\u044c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u0434\u043b\u044f cmake.<\/p>\n<p>\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c  \u043f\u043e\u043b\u043d\u044b\u0439 \u043f\u0443\u0442\u044c \u0434\u043e full_deploy \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e PATH.<\/p>\n<p> \u0428\u0430\u0433 5. \u0421\u043e\u0431\u0440\u0430\u0442\u044c \u201cHello qt\\qml\u201d<\/p>\n<p> \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u0441\u044f \u0432 \u0434\u0438\u0440\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e conan_qml. \u041a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u0444\u0430\u0439\u043b CmakePresets.json \u0438\u0437 \u043f\u043e\u0434\u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 conan_find_libs, \u0432 \u0442\u0435\u043a\u0443\u0449\u0443\u044e \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 conan_qml. <\/p>\n<p> \u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0432 QtCreator \u043d\u0430\u0448 \u043f\u0440\u043e\u0435\u043a\u0442. \u0412 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043f\u0440\u0435\u0441\u0435\u0442.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/cd0\/0ad\/66d\/cd00ad66dbbff26ad4d1ea06f795d9fa.png\" width=\"1075\" height=\"628\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/cd0\/0ad\/66d\/cd00ad66dbbff26ad4d1ea06f795d9fa.png\"\/><\/figure>\n<p> \u041f\u043e\u0441\u043b\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430, \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043d\u0430\u0448 \u00abHello qt qml\u00bb<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/a8c\/d50\/b54\/a8cd50b547f766f5b291c1beeba9f7a1.png\" width=\"1336\" height=\"712\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/a8c\/d50\/b54\/a8cd50b547f766f5b291c1beeba9f7a1.png\"\/><\/figure>\n<p> \u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435.<\/p>\n<p>\u041f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 Qt \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442, \u043d\u043e \u0438\u043c\u0435\u0435\u0442 \u0438 \u0441\u0432\u043e\u0438 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u0438: <\/p>\n<ul>\n<li>\n<p>\u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 Qt \u043d\u0435\u0442 \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 Conan.io, \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e; <\/p>\n<\/li>\n<\/ul>\n<ul>\n<li>\n<p>\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c, \u0431\u044b\u0441\u0442\u0440\u043e \u0441\u043e\u0431\u0440\u0430\u0442\u044c Qt \u0438\u0437 Conan c \u043f\u043e\u043c\u043e\u0449\u044c\u044e mingw64, \u0441\u0431\u043e\u0440\u043a\u0430 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0435\u0442\u0441\u044f \u0441 \u043e\u0448\u0438\u0431\u043a\u043e\u0439. <\/p>\n<p>\u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0447\u0430\u0441\u0442\u0438 \u0431\u0443\u0434\u0435\u043c \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u0441 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u043e\u0439 Qt \u0447\u0435\u0440\u0435\u0437 pacman.<\/p>\n<\/li>\n<\/ul>\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\/876802\/\"> https:\/\/habr.com\/ru\/articles\/876802\/<\/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<h4> \u041c\u043e\u0442\u0438\u0432\u0430\u0446\u0438\u044f<\/h4>\n<p> \u0414\u043e \u043f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f Qt Group \u043a \u0441\u0430\u043d\u043a\u0446\u0438\u044f\u043c, \u0434\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 Qt Framework and Tools \u0431\u044b\u043b\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c Qt Online Installer, \u0432\u0432\u0435\u0441\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u0443\u0447\u0435\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 \u0438 \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0449\u0438\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u0432 \u043c\u0435\u043d\u044e. \u041d\u044b\u043d\u0435 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c \u0438\u0437 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438: \u043f\u0440\u0438\u0431\u0435\u0433\u043d\u0443\u0442\u044c \u043a \u043f\u043e\u043c\u043e\u0449\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u043f\u0430\u043a\u0435\u0442\u043d\u044b\u0445 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u043e\u0432 \u0438\u043b\u0438 \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0438\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432. \u0423 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430 \u0435\u0441\u0442\u044c \u0441\u0432\u043e\u0438 \u043f\u043b\u044e\u0441\u044b \u0438 \u043c\u0438\u043d\u0443\u0441\u044b. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 \u0447\u0435\u0440\u0435\u0437 Conan &#8212; \u043e\u0434\u0438\u043d \u0438\u0437 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u043f\u0430\u043a\u0435\u0442\u043d\u044b\u0445 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u043e\u0432 \u0434\u043b\u044f \u0441++ . <\/p>\n<p> <strong>\u0426\u0435\u043b\u0435\u0432\u0430\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430: <\/strong>Windows 10<\/p>\n<p> \u0428\u0430\u0433 0.  \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430<\/p>\n<p>  \u0421\u043a\u0430\u0447\u0438\u0432\u0430\u0435\u043c \u0441 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u0430\u0439\u0442\u0430 VisualStudio Community<\/p>\n<p> <a href=\"https:\/\/visualstudio.microsoft.com\/ru\/downloads\/\" rel=\"noopener noreferrer nofollow\">https:\/\/visualstudio.microsoft.com\/ru\/downloads\/<\/a><\/p>\n<p>\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0442\u043e\u0440 (\u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u043d\u0430\u0431\u043e\u0440 \u00ab\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0421++\u00bb)<\/p>\n<figure class=\"bordered full-width\"><\/figure>\n<p> \u0428\u0430\u0433 1. \u0421\u043a\u0430\u0447\u0430\u0442\u044c QtCreator \u0438 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442<\/p>\n<p> QtCreator \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0438\u0437 github \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f <a href=\"https:\/\/github.com\/qt-creator\/qt-creator\/releases\/tag\/v15.0.1\" rel=\"noopener noreferrer nofollow\">https:\/\/github.com\/qt-creator\/qt-creator\/releases\/tag\/v15.0.1<\/a><\/p>\n<p> \u0420\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u0430\u0442\u044c \u0430\u0440\u0445\u0438\u0432 \u0441 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a\u0430\u043c\u0438 \u043c\u043e\u0436\u043d\u043e \u0432 \u043b\u044e\u0431\u0443\u044e \u0443\u0434\u043e\u0431\u043d\u0443\u044e \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e.<\/p>\n<p> \u0412 \u043f\u043e\u0434\u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 qtcreator-windows-x64-msvc-15.0.0\\bin \u0431\u0443\u0434\u0435\u0442 \u043b\u0435\u0436\u0430\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0439 \u0444\u0430\u0439\u043b qtcreator.exe<\/p>\n<p> \u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c QtCreator \u0438 \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0440\u043e\u0435\u043a\u0442, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440: conan_qml. <\/p>\n<figure class=\"bordered full-width\"><\/figure>\n<p> \u0417\u0430\u043a\u0440\u044b\u0432\u0430\u0435\u043c  QtCreator<\/p>\n<p> \u0428\u0430\u0433 2.  \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 python \u0438 pip  <\/p>\n<p> \u0417\u0430\u0431\u0438\u0440\u0430\u0435\u043c \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0439 \u0440\u0435\u043b\u0438\u0437 \u0441 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u0430\u0439\u0442\u0430 <a href=\"https:\/\/www.python.org\/downloads\/\" rel=\"noopener noreferrer nofollow\">https:\/\/www.python.org\/downloads\/<\/a><\/p>\n<p> \u0412\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u0443\u044e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 <\/p>\n<figure class=\"full-width\"><\/figure>\n<p> \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u0447\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d pip<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u0416\u043c\u0435\u043c next, \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443, \u0436\u0434\u0435\u043c \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438.<\/p>\n<p> \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043f\u0443\u0442\u044c \u043a \u0434\u0438\u0440\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u0441 python (\u0443 \u043c\u0435\u043d\u044f \u044d\u0442\u043e C:\\Program Files\\Python312) \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f PATH. \u0414\u043e\u043b\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0441\u044f \u043a\u0430\u043a-\u0442\u043e \u0442\u0430\u043a:<\/p>\n<figure class=\"full-width\"><\/figure>\n<p> \u0428\u0430\u0433 2. \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 conan<\/p>\n<p> \u0421\u0442\u0430\u0432\u0438\u043c \u043f\u0430\u043a\u0435\u0442\u043d\u044b\u0439 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440 conan \u0447\u0435\u0440\u0435\u0437 \u043f\u0430\u043a\u0435\u0442\u043d\u044b\u0439 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440 pip \ud83d\ude42<\/p>\n<blockquote>\n<p> pip install conan==2.10.2<\/p>\n<\/blockquote>\n<p> \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0447\u0442\u043e conan \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d:<\/p>\n<blockquote>\n<p> conan -v<\/p>\n<\/blockquote>\n<blockquote>\n<p> Conan version 2.10.2<\/p>\n<\/blockquote>\n<p> \u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c \u043f\u0440\u043e\u0444\u0438\u043b\u044c conan:<\/p>\n<blockquote>\n<p> conan profile detect -f<\/p>\n<\/blockquote>\n<blockquote>\n<p> detect_api: Found msvc 17 <\/p>\n<p> Detected profile:<\/p>\n<p> [settings]<\/p>\n<p> arch=x86_64<\/p>\n<p> build_type=Release<\/p>\n<p> compiler=msvc<\/p>\n<p> compiler.cppstd=14<\/p>\n<p> compiler.runtime=dynamic<\/p>\n<p> compiler.version=194<\/p>\n<p> os=Windows<\/p>\n<\/blockquote>\n<p> \u041f\u0440\u043e\u0444\u0438\u043b\u044c \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 C:\\Users\\\u0418\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\\.conan2\\profiles\\default<\/p>\n<p> \u0428\u0430\u0433 3. \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a<\/p>\n<p>\u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e conan_qml. \u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c cmd \u0432 \u044d\u0442\u043e\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 (\u0432 \u0430\u0434\u0440\u0435\u0441\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 \u043f\u0440\u043e\u0432\u043e\u0434\u043d\u0438\u043a\u0430 \u0441\u0442\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u043f\u0443\u0442\u044c, \u0432\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0442\u0440\u0438 \u0431\u0443\u043a\u0432\u044b cmd, \u043d\u0430\u0436\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u043a\u043b\u0430\u0432\u0438\u0448\u0430 enter).<\/p>\n<p> \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u043a\u0430\u043a\u0438\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 Qt \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b (\u0441\u0435\u0439\u0447\u0430\u0441 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0432\u0435\u0440\u0441\u0438\u0438 \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 5.15.6 \u0434\u043e  qt\/6.7.3):<\/p>\n<blockquote>\n<p> conan search qt<\/p>\n<\/blockquote>\n<p> \u041c\u043d\u0435 \u043d\u0443\u0436\u043d\u0430 \u0432\u0435\u0440\u0441\u0438\u044f qt\/5.15.12, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0431\u0443\u0434\u0435\u043c \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u0435\u0451.<\/p>\n<p> \u0421\u043e\u0437\u0434\u0430\u0435\u043c  \u0444\u0430\u0439\u043b conanfile.py \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 conan_qml<\/p>\n<blockquote>\n<p> from conan import ConanFile<\/p>\n<p>from conan.tools.cmake import CMakeToolchain, CMake, cmake_layout, CMakeDeps<\/p>\n<p>import os<\/p>\n<p> <\/p>\n<p>class ExampleRecipe(ConanFile):<\/p>\n<p>\u00a0 \u00a0 generators = &#171;CMakeDeps&#187;, &#171;CMakeToolchain&#187;<\/p>\n<p>\u00a0 \u00a0 # Binary configuration<\/p>\n<p>\u00a0 \u00a0 settings = &#171;os&#187;, &#171;compiler&#187;, &#171;build_type&#187;, &#171;arch&#187;<\/p>\n<p>\u00a0 \u00a0 options = {&#171;shared&#187;: [True, False], &#171;fPIC&#187;: [True, False]}<\/p>\n<p>\u00a0 \u00a0 default_options = {&#171;shared&#187;: False, &#171;fPIC&#187;: True}<\/p>\n<p> <\/p>\n<p>\u00a0 \u00a0 def requirements(self):<\/p>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 self.requires(&#171;qt\/5.15.12&#187;)<\/p>\n<p> <\/p>\n<p>\u00a0 \u00a0 def layout(self):<\/p>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 self.folders.build = &#171;cmake-build-{}&#187;.format(str(self.settings.build_type).lower())<\/p>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 self.folders.generators = os.path.join(os.path.curdir, &#171;conan_find_libs&#187;)<\/p>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 self.cpp.build.libdirs = os.path.join(self.folders.generators, &#171;lib&#187;) # write the .libs to the library folder under build<\/p>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 self.cpp.build.bindirs = os.path.join(self.folders.generators, &#171;bin&#187;) # write the .dll to the bin folder under build<\/p>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 self.folders.imports = self.folders.build<\/p>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 self.folders.source = &#171;src&#187;<\/p>\n<p> <\/p>\n<p>\u00a0 \u00a0 # \u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c \u043e\u043f\u0446\u0438\u0438 \u043f\u0430\u043a\u0435\u0442\u043e\u0432<\/p>\n<p>\u00a0 \u00a0 def configure(self):<\/p>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 # O\u0431\u0449\u0438\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438<\/p>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 self.options[&#171;qt&#187;].shared = True<\/p>\n<p> <\/p>\n<p>\u00a0 \u00a0 def source(self):<\/p>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 # In the source method, the current directory == self.source_folder<\/p>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 assert self.source_folder == os.getcwd()<\/p>\n<p> <\/p>\n<p>\u00a0 \u00a0 # copy the libs to build\/bin and build\/lib folders<\/p>\n<p>\u00a0 \u00a0 def generate(self):<\/p>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 print(&#171;CWD&#187;, os.getcwd())<\/p>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 print(&#171;SOURCE&#187;, self.source_folder)<\/p>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 print(&#171;BUILD&#187;, self.build_folder)<\/p>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 print(&#171;BUILD2&#187;, self.cpp.build)<\/p>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 print(&#171;LIBDIRS&#187;, self.cpp.build.libdirs)<\/p>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 print(&#171;BINDIRS&#187;, self.cpp.build.bindirs)<\/p>\n<p> <\/p>\n<p>\u00a0 \u00a0 def package(self):<\/p>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 cmake = CMake(self)<\/p>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 cmake.install()<\/p>\n<p> <\/p>\n<p>\u00a0 \u00a0 def deploy(self):<\/p>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 self.copy(self, &#171;*&#187;, src=self.package_folder, dst=self.deploy_folder)<\/p>\n<\/blockquote>\n<p> \u0421\u043b\u0435\u0434\u0443\u0435\u0442 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0441\u0442\u0440\u043e\u043a\u0443:<\/p>\n<blockquote>\n<p> self.folders.generators = os.path.join(os.path.curdir, &#171;conan_find_libs&#187;)<\/p>\n<\/blockquote>\n<p> \u0422\u0443\u0442 \u0443\u043a\u0430\u0437\u0430\u043d\u043e \u043a\u0443\u0434\u0430 \u0431\u0443\u0434\u0443\u0442 \u043f\u043e\u043c\u0435\u0449\u0435\u043d\u044b \u0431\u0443\u0434\u0443\u0449\u0438\u0435 cmake \u0444\u0430\u0439\u043b\u044b \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u043f\u0430\u043a\u0435\u0442\u043e\u0432.<\/p>\n<p> \u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u0441 \u0444\u043b\u0430\u0433\u0430\u043c\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0449\u0438\u043c\u0438:<\/p>\n<p>&#8212;  \u0442\u0438\u043f \u0441\u0431\u043e\u0440\u043a\u0438 ( build_type=Release\\Debug); <\/p>\n<p>&#8212; \u0437\u0430\u043f\u0443\u0441\u043a \u0441\u0431\u043e\u0440\u043a\u0438 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a\u043e\u0432 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e, \u0435\u0441\u043b\u0438 \u0438\u0445 \u043d\u0435\u0442 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 (&#8212;build=missing); <\/p>\n<p>&#8212; \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u0434\u043b\u044f \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 (&#8212;deployer=full_deploy).<\/p>\n<blockquote>\n<p> conan install . -s build_type=Debug &#8212;build=missing &#8212;deployer=full_deploy<\/p>\n<\/blockquote>\n<p> \u041a\u0430\u043a\u043e\u0435-\u0442\u043e \u0432\u0440\u0435\u043c\u044f conan \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043a\u0430\u0442\u044c \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0435 \u0437\u0435\u0440\u043a\u0430\u043b\u0430:<\/p>\n<blockquote>\n<p> qt\/5.15.12: WARN: network: Error downloading file https:\/\/download.qt.io\/official_releases\/qt\/5.15\/5.15.12\/single\/qt-everywhere-opensource-src-5.15.12.tar.xz: &#8216;HTTPSConnectionPool(host=&#8217;download.qt.io&#8217;, port=443): Max retries exceeded with url: \/official_releases\/qt\/5.15\/5.15.12\/single\/qt-everywhere-opensource-src-5.15.12.tar.xz (Caused by ConnectTimeoutError(&lt;urllib3.connection.HTTPSConnection object at 0x0000024FF62CB890&gt;, &#8216;Connection to download.qt.io timed out. (connect timeout=30)&#8217;))&#8217;<\/p>\n<p> qt\/5.15.12: Waiting 5 seconds to retry&#8230;<\/p>\n<\/blockquote>\n<p> \u041f\u043e\u0441\u043b\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u0441\u0431\u043e\u0440\u043a\u0438 \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043f\u0430\u043a\u0435\u0442\u043e\u0432, \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 full_deploy \u0431\u0443\u0434\u0443\u0442 \u043b\u0435\u0436\u0430\u0442\u044c \u0441\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438, \u0432 conan_find_libs \u0431\u0443\u0434\u0443\u0442 \u043b\u0435\u0436\u0430\u0442\u044c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u0434\u043b\u044f cmake.<\/p>\n<p>\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c  \u043f\u043e\u043b\u043d\u044b\u0439 \u043f\u0443\u0442\u044c \u0434\u043e full_deploy \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e PATH.<\/p>\n<p> \u0428\u0430\u0433 5. \u0421\u043e\u0431\u0440\u0430\u0442\u044c \u201cHello qt\\qml\u201d<\/p>\n<p> \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u0441\u044f \u0432 \u0434\u0438\u0440\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e conan_qml. \u041a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u0444\u0430\u0439\u043b CmakePresets.json \u0438\u0437 \u043f\u043e\u0434\u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 conan_find_libs, \u0432 \u0442\u0435\u043a\u0443\u0449\u0443\u044e \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 conan_qml. <\/p>\n<p> \u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0432 QtCreator \u043d\u0430\u0448 \u043f\u0440\u043e\u0435\u043a\u0442. \u0412 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043f\u0440\u0435\u0441\u0435\u0442.<\/p>\n<figure class=\"full-width\"><\/figure>\n<p> \u041f\u043e\u0441\u043b\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430, \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043d\u0430\u0448 \u00abHello qt qml\u00bb<\/p>\n<figure class=\"full-width\"><\/figure>\n<p> \u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435.<\/p>\n<p>\u041f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 Qt \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442, \u043d\u043e \u0438\u043c\u0435\u0435\u0442 \u0438 \u0441\u0432\u043e\u0438 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u0438: <\/p>\n<ul>\n<li>\n<p>\u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 Qt \u043d\u0435\u0442 \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 Conan.io, \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e; <\/p>\n<\/li>\n<\/ul>\n<ul>\n<li>\n<p>\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c, \u0431\u044b\u0441\u0442\u0440\u043e \u0441\u043e\u0431\u0440\u0430\u0442\u044c Qt \u0438\u0437 Conan c \u043f\u043e\u043c\u043e\u0449\u044c\u044e mingw64, \u0441\u0431\u043e\u0440\u043a\u0430 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0435\u0442\u0441\u044f \u0441 \u043e\u0448\u0438\u0431\u043a\u043e\u0439. <\/p>\n<p>\u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0447\u0430\u0441\u0442\u0438 \u0431\u0443\u0434\u0435\u043c \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u0441 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u043e\u0439 Qt \u0447\u0435\u0440\u0435\u0437 pacman.<\/p>\n<\/li>\n<\/ul>\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\/876802\/\"> https:\/\/habr.com\/ru\/articles\/876802\/<\/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-446227","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/446227","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=446227"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/446227\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=446227"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=446227"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=446227"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}