QT 静态编译 包含 openssl
时间: 2023-07-05 18:30:29 浏览: 475
要在QT静态编译中包含OpenSSL支持,您需要在重新配置QT源代码时添加“-openssl-linked”选项,并将OpenSSL库路径传递给“-openssl”选项。例如,以下是在Ubuntu上编译QT 5.15.2静态版本,同时包括OpenSSL的示例命令:
1. 下载OpenSSL
在 https://www.openssl.org/source/ 下载源码包,例如 openssl-1.1.1i.tar.gz
2. 解压并编译OpenSSL
解压 openssl-1.1.1i.tar.gz 至 /usr/local/src/
```
cd /usr/local/src/openssl-1.1.1i/
./config --prefix=/usr/local/openssl-1.1.1i --openssldir=/usr/local/openssl-1.1.1i
make -j8
make install
```
以上命令将编译并安装OpenSSL到 /usr/local/openssl-1.1.1i 目录下。
3. 重新配置QT源代码
在重新配置QT源代码时,您需要添加以下选项:
```
./configure -prefix /opt/qt-static-openssl -static -release -opensource -confirm-license -no-sql-sqlite -no-icu -no-opengl -no-gtkstyle -no-pch -no-dbus -openssl-linked -openssl /usr/local/openssl-1.1.1i -nomake examples -nomake tests
```
在上面的命令中,我们添加了“-openssl-linked”选项,以便将OpenSSL库静态链接到QT二进制文件中。我们还使用“-openssl”选项指定了OpenSSL库的路径。
4. 编译QT源代码
然后,您可以使用以下命令编译QT源代码:
```
make -j8
```
这将使用8个线程并行编译QT源代码。整个编译过程可能需要一些时间,具体时间取决于您的计算机性能和QT源代码的大小。
5. 测试QT静态版本是否包含OpenSSL
编译完成后,您可以使用以下命令来测试QT静态版本是否包含OpenSSL:
```
ldd /opt/qt-static-openssl/bin/qmake | grep ssl
```
如果输出中包含“libssl.so”,则表示QT静态版本已经包含了OpenSSL支持。
阅读全文