【问题标题】:How do I link to Licensed Qt Libraries statically with CMake using find_package?如何使用 find_package 使用 CMake 静态链接到许可的 Qt 库?
【发布时间】:2018-08-16 18:36:53
【问题描述】:

我正在将 Visual Studio 2010 项目移植到 CMake 和 Visual Studio 2015。 我有它构建并与默认行为链接到 Qt

find_package (Qt5 5.9.3 COMPONENTS
    Core
    Multimedia
    Network
    Widgets
    Xml
    XmlPatterns
    REQUIRED)

我想要做的是利用我拥有开发人员许可证这一事实,并且应该能够静态链接到 Qt 库而无需从源代码构建,从而显着清理我的应用程序目录。

我正在与

建立链接
target_link_libraries (${ProjectName}
    Qt5::Core
    Qt5::Multimedia
    Qt5::Network
    Qt5::Widgets
    Qt5::Xml
    Qt5::XmlPatterns)

我还需要什么使其静态链接?

【问题讨论】:

  • 如果你有开发者许可证,你可以很容易地直接问Qt。他们为拥有开发者许可证的人提供一些支持
  • 我也会这样做。我先留着,看看我能不能先在这里得到答案。 Google-fu 在为我的 CMake 问题提供具体结果方面一直很糟糕。

标签: c++ qt cmake linker


【解决方案1】:

如果这还没有完成,您将不得不静态构建 Qt。

简而言之,您必须安装 perl、python 和可选的 jom 并按照 https://doc.qt.io/qt-5/windows-building.html 处的说明进行操作

下载源码后,启动shell,配置命令如下所示

configure.bat -platform win32-msvc -release ^
-nomake examples ^
-nomake tests ^
-static

SSL

您还必须决定是否需要SSL support or not。如果没有,只需给出选项:

-no-ssl

如果是,类似的附加选项

-openssl -I %OPENSSL_INCLUDE_DIR% -L %OPENSSL_LIBRARY_DIR%

必须通过。

可以使用OpenSSL版本used in the Qt5 provisioning script

$version = "1_0_2o"
$externalUrl = "https://slproweb.com/download/Win64OpenSSL-$version.exe"

图形驱动程序、WebEngine、...

您还必须在这方面做出一些决定:https://doc.qt.io/qt-5/windows-requirements.html

【讨论】:

  • 直接与 Qt 协商后,我可以确认即使是他们的许可开发人员发行版也不包含静态可链接库。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-04-12
  • 1970-01-01
  • 1970-01-01
  • 2015-04-16
  • 1970-01-01
  • 1970-01-01
  • 2013-03-12
相关资源
最近更新 更多