如何使用find_package与CMake静态链接到许可的Qt库?

时间:2018-08-16 18:36:53

标签: c++ qt cmake linker

我要将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)

我还需要使其静态链接吗?

1 个答案:

答案 0 :(得分:1)

如果尚未完成,则必须静态构建Qt。

简而言之,您必须安装perl,python,可选的jom并按照https://doc.qt.io/qt-5/windows-building.html

上的说明进行操作。

下载源代码后,启动外壳程序,configure命令如下所示

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