我想玩一下QtCOAP插件。不幸的是,我的OS-X Catalina上缺少DTLS支持。我得到的只是这个错误:
qt.coap.connection: DTLS is disabled, falling back to QtCoap::NoSecurity mode.
我已经使用在线安装程序完全安装了Qt 5.14.1(带有源代码(,然后使用预构建的qmake自己编译了COAP插件。
QtCoap代码中的DTLS特定部分被包装在#if QT_CONFIG(dtls)
(qcoapqudpconnection_p.h(块中。这似乎被评估为错误。
如何启用 DTLS 支持?
从快速浏览源代码来看,DTLS 目前似乎只能使用 OpenSSL 使用。默认情况下,Qt是使用macOS上的SecureTranport框架构建的,该框架是该操作系统的官方加密库。
您可以重新构建 qtbase 模块以改用 OpenSSL,但请确保安装最新版本的 1.1 系列。
您可以使用macports或brew来获取OpenSSL。