./configure 不带openssl
时间: 2023-08-14 19:07:15 浏览: 110
这个错误提示的意思是编译时缺少 openssl 库,导致 ssl 模块无法编译。要解决这个问题,你需要安装 openssl 库,具体的安装方法因操作系统和软件包管理器不同而异。一些常见的操作系统上安装 openssl 库的命令如下:
- Ubuntu / Debian 系统:sudo apt-get install libssl-dev
- CentOS / Fedora 系统:sudo yum install openssl-devel
- macOS 系统:brew install openssl
安装完 openssl 库后,再重新执行 ./configure 命令就可以解决这个错误了。
相关问题
QT 5.12.12 源码 静态编译 包括 openssl
在编译 Qt 5.12.12 源码时,需要先编译 OpenSSL 库,并将其加入 Qt 的编译选项中。以下是静态编译 Qt 5.12.12 包括 OpenSSL 的步骤:
1. 下载并编译 OpenSSL 库
您可以从 OpenSSL 官网下载最新的源码包,例如 `openssl-1.1.1i.tar.gz`。下载后,解压缩并进入目录,执行以下命令进行编译:
```
./config no-shared --prefix=/path/to/openssl
make && make install
```
其中,`/path/to/openssl` 为您安装 OpenSSL 的路径。
2. 下载并解压 Qt 5.12.12 源码
您可以从 Qt 官网下载 Qt 5.12.12 的源码包,例如 `qt-everywhere-src-5.12.12.tar.xz`。下载后,解压缩至任意目录。
3. 配置 Qt 的编译选项
进入 Qt 源码目录,执行以下命令进行配置:
```
./configure -static -prefix /path/to/qt -openssl-linked OPENSSL_PREFIX=/path/to/openssl -no-openssl
```
其中,`/path/to/qt` 为您要安装 Qt 的路径,`/path/to/openssl` 为您安装 OpenSSL 的路径。
此命令中,`-static` 表示静态编译,`-prefix` 指定 Qt 安装路径,`-openssl-linked` 表示链接 OpenSSL 库,`OPENSSL_PREFIX` 指定 OpenSSL 的安装路径,`-no-openssl` 表示不使用 Qt 自带的 OpenSSL 库。
4. 编译 Qt
执行以下命令进行编译:
```
make -j4
```
其中,`-j4` 表示使用 4 个线程进行编译,可以根据自己的 CPU 核心数进行调整。
5. 安装 Qt
执行以下命令进行安装:
```
make install
```
此命令会将编译好的 Qt 安装至指定路径。
至此,静态编译 Qt 5.12.12 并包括 OpenSSL 完成。
QT5.12.12 编译 报错 ERROR: Feature 'openssl-linked' was enabled, but the pre-condition '!features.securetransport && libs.openssl' failed. 怎么解决
这个错误提示的意思是,你启用了 OpenSSL 静态链接的功能,但是先决条件“!features.securetransport && libs.openssl”没有被满足。
这可能是因为你同时启用了 Secure Transport 和 OpenSSL,而这两个选项是互斥的。Secure Transport 是 macOS 系统自带的加密库,如果你在 macOS 上编译 QT,可以选择启用 Secure Transport,而不需要使用 OpenSSL。
如果你确实需要使用 OpenSSL,可以尝试禁用 Secure Transport 选项,方法是在 configure 命令中加入以下参数:
```
-no-feature-securetransport
```
这样就可以禁用 Secure Transport,使 OpenSSL 静态链接功能生效。同时,确保你已经安装了 OpenSSL 库和头文件,并在 configure 命令中指定正确的路径:
```
-I/path/to/openssl/include -L/path/to/openssl/lib
```
如果你已经禁用了 Secure Transport 选项,但仍然遇到相同的错误,请检查你的 OpenSSL 版本是否与 QT 要求的版本兼容。QT5.12.12 可以使用 OpenSSL 1.1.1 系列的版本,建议使用这个版本进行编译。
阅读全文