首页 > 解决方案 > CMake 错误:此项目中使用了以下变量,但它们设置为 NOTFOUND,OPENSSL_INCLUDE_DIR 用作包含目录

问题描述

我正在尝试运行cmake命令

cmake .. -DCMAKE_BUILD_TYPE=DEBUG -DBUILD_SHARED_LIBS=OFF         
-DBUILD_MODULES=OFF -DBUILD_APPLICATIONS=OFF          
-DBUILD_SAMPLES=OFF -DBUILD_TESTS=OFF          
-DWITH_WEBRTC=ON -DWITH_FFMPEG=ON          
-DBUILD_MODULE_base=ON -DBUILD_MODULE_crypto=ON          
-DBUILD_MODULE_http=ON -DBUILD_MODULE_json=ON          
-DBUILD_MODULE_av=ON -DBUILD_MODULE_net=ON          
-DBUILD_MODULE_socketio=ON -DBUILD_MODULE_symple=ON          - 
DBUILD_MODULE_util=ON -DBUILD_MODULE_uv=ON          
-DBUILD_MODULE_webrtc=ON -DWEBRTC_INCLUDE_DIRS=/tmp/webrtc-22215-ab42706-linux-x64/include/ 
-DWEBRTC_LIBRARIES=/tmp/webrtc-22215-ab42706-linux-x64/lib/ 
-DOPENSSL_INCLUDE_DIR=/usr/include/openssl

并以错误结束

 CMake Error: The following variables are used in this project, but
 they are set to NOTFOUND. Please set them or make sure they are set
 and tested correctly in the CMake files:
 /home/ubuntu/temp/libsourcey/src/av/OPENSSL_INCLUDE_DIR    used as
 include directory in directory /home/ubuntu/temp/libsourcey/src/av
 /home/ubuntu/temp/libsourcey/src/base/OPENSSL_INCLUDE_DIR    used as
 include directory in directory /home/ubuntu/temp/libsourcey/src/base
 /home/ubuntu/temp/libsourcey/src/crypto/OPENSSL_INCLUDE_DIR    used as
 include directory in directory /home/ubuntu/temp/libsourcey/src/crypto
 /home/ubuntu/temp/libsourcey/src/http/OPENSSL_INCLUDE_DIR    used as
 include directory in directory /home/ubuntu/temp/libsourcey/src/http
 /home/ubuntu/temp/libsourcey/src/json/OPENSSL_INCLUDE_DIR    used as
 include directory in directory /home/ubuntu/temp/libsourcey/src/json
 /home/ubuntu/temp/libsourcey/src/net/OPENSSL_INCLUDE_DIR    used as
 include directory in directory /home/ubuntu/temp/libsourcey/src/net
 /home/ubuntu/temp/libsourcey/src/socketio/OPENSSL_INCLUDE_DIR    used
 as include directory in directory
 /home/ubuntu/temp/libsourcey/src/socketio
 /home/ubuntu/temp/libsourcey/src/symple/OPENSSL_INCLUDE_DIR    used as
 include directory in directory /home/ubuntu/temp/libsourcey/src/symple
 /home/ubuntu/temp/libsourcey/src/util/OPENSSL_INCLUDE_DIR    used as
 include directory in directory /home/ubuntu/temp/libsourcey/src/util
 /home/ubuntu/temp/libsourcey/src/webrtc/OPENSSL_INCLUDE_DIR    used as
 include directory in directory /home/ubuntu/temp/libsourcey/src/webrtc

我手动有一个 OpenSSL 包含目录路径,然后也收到相同的错误

-DOPENSSL_INCLUDE_DIR=/usr/include/openssl 

如何解决此错误?

标签: ubuntucmakeopensslwebrtclibsourcey

解决方案


您的 CMakeLists.txt 将 OPENSSL 定义为必需的外部库。但是没有找到。

find_library(OPENSSL ...)

查看 cmake 正在寻找库的路径。

查看find_library正在寻找库的路径。为了使这更容易,您可以打印出find_library.

打印变量message(STATUS ${VARIABLE_NAME})


推荐阅读