大家好
我只是关注了https://github.com/h2o/h2o/blob/master/README.md#installation主题,但我在一点上堆叠:
cmake -DCMAKE_INSTALL_PREFIX=/usr/local .
我不断收到此错误:
CMake Error at /usr/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:108 (message):
Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the
system variable OPENSSL_ROOT_DIR (missing: OPENSSL_LIBRARIES
OPENSSL_INCLUDE_DIR)
Call Stack (most recent call first):
/usr/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:315 (_FPHSA_FAILURE_MESSAGE)
/usr/share/cmake-2.8/Modules/FindOpenSSL.cmake:313 (find_package_handle_standard_args)
CMakeLists.txt:8 (FIND_PACKAGE)
-- Configuring incomplete, errors occurred!
See also "/root/h2o/CMakeFiles/CMakeOutput.log".
See also "/root/h2o/CMakeFiles/CMakeError.log".
我在干净的 Ubuntu 14.04.02 上的安装步骤:
root@RP-01:~# apt-get install locate git perl python cmake libyaml-0-2 build-essential -y
root@RP-01:~# git clonehttps://github.com/openssl/openssl.git
root@RP-01:~# git clone https://github.com/h2o/h2o.git
root@RP-01:~# apt-get remove openssl libssl-dev
root@RP-01:~# cd openssl/
root@RP-01:~/openssl# ./config
root@RP-01:~/openssl# make
root@RP-01:~/openssl# make test
root@RP-01:~/openssl# make install
root@RP-01:~# /usr/local/ssl/bin/openssl version
OpenSSL 1.1.0-dev xx XXX xxxx
# Looks like ssl is ok! I have no errors here.
根据上面提到的错误我发现了这个话题:
http://stackoverflow.com/questions/16248775/cmake-not-able-to-find-openssl
我试过了:
cmake -DOPENSSL_ROOT_DIR=/usr/local/ssl -DOPENSSL_LIBRARIES=/usr/local/ssl/lib
但是,我遇到了同样的错误。 我该如何解决?
谢谢您的帮助。
安德烈
我遇到了这个问题,然后我跟着
cmake -DOPENSSL_ROOT_DIR=/usr/local/ssl -DOPENSSL_LIBRARIES=/usr/local/ssl/lib
然后错误消失了
对我来说,错误仍然存在。 即使我这样尝试:
root@RP-01:~/h2o# cmake -DOPENSSL_ROOT_DIR=/usr/local/ssl -DOPENSSL_LIBRARIES=/usr/local/ssl/lib cmake -DCMAKE_INSTALL_PREFIX=/usr/local .
你介意尝试一下: cmake -DCMAKE_INCLUDE_PATH=/usr/local/ssl/include -DCMAKE_LIBRARY_PATH=/usr/local/ssl/lib
吗?
好的,我在安装过程中取得了一些成就。 所需的软件包(不确定 libyaml-dev 0.1.4 libuv-dev 0.10.22 是否正确版本)
apt-get install locate git cmake build-essential checkinstall autoconf pkg-config libtool python-sphinx libcunit1-dev nettle-dev libyaml-dev libuv-dev -y
相信以后可以出一个ubuntu安装教程。 ;) 但是,我仍然有同样的错误:
root@RP-01:~/h2o# cmake -DCMAKE_INSTALL_PREFIX=/usr/local .
CMake Error at /usr/share/cmake-2.8/Modules/FindOpenSSL.cmake:278 (list):
list GET given empty list
Call Stack (most recent call first):
CMakeLists.txt:8 (FIND_PACKAGE)
CMake Error at /usr/share/cmake-2.8/Modules/FindOpenSSL.cmake:279 (list):
list GET given empty list
Call Stack (most recent call first):
CMakeLists.txt:8 (FIND_PACKAGE)
CMake Error at /usr/share/cmake-2.8/Modules/FindOpenSSL.cmake:281 (list):
list GET given empty list
Call Stack (most recent call first):
CMakeLists.txt:8 (FIND_PACKAGE)
CMake Error at /usr/share/cmake-2.8/Modules/FindOpenSSL.cmake:283 (list):
list GET given empty list
Call Stack (most recent call first):
CMakeLists.txt:8 (FIND_PACKAGE)
-- Configuring incomplete, errors occurred!
See also "/root/h2o/CMakeFiles/CMakeOutput.log".
See also "/root/h2o/CMakeFiles/CMakeError.log".
@kazuho谢谢你的提议,但我现在有这样的提议:
root@RP-01:~/h2o# cmake -DCMAKE_INCLUDE_PATH=/usr/local/ssl/include -DCMAKE_LIBRARY_PATH=/usr/local/ssl/lib
CMake Error at /usr/share/cmake-2.8/Modules/FindOpenSSL.cmake:278 (list):
list GET given empty list
Call Stack (most recent call first):
CMakeLists.txt:8 (FIND_PACKAGE)
CMake Error at /usr/share/cmake-2.8/Modules/FindOpenSSL.cmake:279 (list):
list GET given empty list
Call Stack (most recent call first):
CMakeLists.txt:8 (FIND_PACKAGE)
CMake Error at /usr/share/cmake-2.8/Modules/FindOpenSSL.cmake:281 (list):
list GET given empty list
Call Stack (most recent call first):
CMakeLists.txt:8 (FIND_PACKAGE)
CMake Error at /usr/share/cmake-2.8/Modules/FindOpenSSL.cmake:283 (list):
list GET given empty list
Call Stack (most recent call first):
CMakeLists.txt:8 (FIND_PACKAGE)
-- Found OpenSSL: /usr/local/ssl/lib/libssl.a;/usr/local/ssl/lib/libcrypto.a (found version ".0.0`")
-- Found LIBUV: /usr/lib/x86_64-linux-gnu/libuv.so
-- Found LIBYAML: /usr/lib/x86_64-linux-gnu/libyaml.so
-- Found WSLAY: /usr/local/lib/libwslay.so
-- Configuring incomplete, errors occurred!
See also "/root/h2o/CMakeFiles/CMakeOutput.log".
See also "/root/h2o/CMakeFiles/CMakeError.log".
@aafanasyev抱歉,我不小心关闭了这个问题。 如果问题仍然存在,请重新打开问题。
@kazuho - 即使我使用cmake -DWITH_BUNDLED_SSL=on
构建也需要 OpenSSL 吗? 似乎是这样,因为我得到了相同的Could NOT find OpenSSL
错误。
@kishorenc
即使我使用
cmake -DWITH_BUNDLED_SSL=on
构建,是否也需要 OpenSSL?
不。
你能发布输入输出吗?
当然:
$ cmake -DWITH_BUNDLED_SSL=on .
-- The C compiler identification is GNU 4.8.4
-- The CXX compiler identification is GNU 4.8.4
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE)
-- Looking for include file pthread.h
-- Looking for include file pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the system variable OPENSSL_ROOT_DIR (missing: OPENSSL_LIBRARIES OPENSSL_INCLUDE_DIR)
CMake Error at /usr/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:108 (message):
Could NOT find ZLIB (missing: ZLIB_LIBRARY ZLIB_INCLUDE_DIR)
Call Stack (most recent call first):
/usr/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:315 (_FPHSA_FAILURE_MESSAGE)
/usr/share/cmake-2.8/Modules/FindZLIB.cmake:85 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
CMakeLists.txt:46 (FIND_PACKAGE)
-- Configuring incomplete, errors occurred!
很抱歉误报。 我意识到它实际上是在抱怨 ZLIB 而不是 OpenSSL。 现在一切都好。
好的,我在安装过程中取得了一些成就。 所需的软件包(不确定 libyaml-dev 0.1.4 libuv-dev 0.10.22 是否正确版本)
apt-get install locate git cmake build-essential checkinstall autoconf pkg-config libtool python-sphinx libcunit1-dev nettle-dev libyaml-dev libuv-dev -y
相信以后可以出一个ubuntu安装教程。 ;) 但是,我仍然有同样的错误:
root@RP-01:~/h2o# cmake -DCMAKE_INSTALL_PREFIX=/usr/local . CMake Error at /usr/share/cmake-2.8/Modules/FindOpenSSL.cmake:278 (list): list GET given empty list Call Stack (most recent call first): CMakeLists.txt:8 (FIND_PACKAGE) CMake Error at /usr/share/cmake-2.8/Modules/FindOpenSSL.cmake:279 (list): list GET given empty list Call Stack (most recent call first): CMakeLists.txt:8 (FIND_PACKAGE) CMake Error at /usr/share/cmake-2.8/Modules/FindOpenSSL.cmake:281 (list): list GET given empty list Call Stack (most recent call first): CMakeLists.txt:8 (FIND_PACKAGE) CMake Error at /usr/share/cmake-2.8/Modules/FindOpenSSL.cmake:283 (list): list GET given empty list Call Stack (most recent call first): CMakeLists.txt:8 (FIND_PACKAGE) -- Configuring incomplete, errors occurred! See also "/root/h2o/CMakeFiles/CMakeOutput.log". See also "/root/h2o/CMakeFiles/CMakeError.log".
@kazuho谢谢你的提议,但我现在有这样的提议:
root@RP-01:~/h2o# cmake -DCMAKE_INCLUDE_PATH=/usr/local/ssl/include -DCMAKE_LIBRARY_PATH=/usr/local/ssl/lib CMake Error at /usr/share/cmake-2.8/Modules/FindOpenSSL.cmake:278 (list): list GET given empty list Call Stack (most recent call first): CMakeLists.txt:8 (FIND_PACKAGE) CMake Error at /usr/share/cmake-2.8/Modules/FindOpenSSL.cmake:279 (list): list GET given empty list Call Stack (most recent call first): CMakeLists.txt:8 (FIND_PACKAGE) CMake Error at /usr/share/cmake-2.8/Modules/FindOpenSSL.cmake:281 (list): list GET given empty list Call Stack (most recent call first): CMakeLists.txt:8 (FIND_PACKAGE) CMake Error at /usr/share/cmake-2.8/Modules/FindOpenSSL.cmake:283 (list): list GET given empty list Call Stack (most recent call first): CMakeLists.txt:8 (FIND_PACKAGE) -- Found OpenSSL: /usr/local/ssl/lib/libssl.a;/usr/local/ssl/lib/libcrypto.a (found version ".0.0`") -- Found LIBUV: /usr/lib/x86_64-linux-gnu/libuv.so -- Found LIBYAML: /usr/lib/x86_64-linux-gnu/libyaml.so -- Found WSLAY: /usr/local/lib/libwslay.so -- Configuring incomplete, errors occurred! See also "/root/h2o/CMakeFiles/CMakeOutput.log". See also "/root/h2o/CMakeFiles/CMakeError.log".
我也遇到这个问题。 通过一些搜索互联网,我发现了这个问题。
终于找到了cmake不能成功决定openssl版本的原因。
在 /usr/share/cmake-2.8/Modules/FindOpenSSL。 cmake:278这个文件,它使用正则表达式来匹配 openssl 版本,使用:
REGEX "^#define[\t ]+OPENSSL_VERSION_NUMBER[\t ]+0x([0-9a-fA-F])+.*")
但是在 openssl/opensslv.h 中,它将版本定义为:
# define OPENSSL_VERSION_NUMBER 0x101000bfL
你注意到这里的魔力了吗?
是的,# 和define 之间的空格是它无法正确决定openssl 版本的原因。 通过删除 opensslv.h 中的空间,配置过程现在可以成功。
改成:
#define OPENSSL_VERSION_NUMBER 0x101000bfL
最有用的评论
我也遇到这个问题。 通过一些搜索互联网,我发现了这个问题。
终于找到了cmake不能成功决定openssl版本的原因。
在 /usr/share/cmake-2.8/Modules/FindOpenSSL。 cmake:278这个文件,它使用正则表达式来匹配 openssl 版本,使用:
REGEX "^#define[\t ]+OPENSSL_VERSION_NUMBER[\t ]+0x([0-9a-fA-F])+.*")
但是在 openssl/opensslv.h 中,它将版本定义为:
# define OPENSSL_VERSION_NUMBER 0x101000bfL
你注意到这里的魔力了吗?
是的,# 和define 之间的空格是它无法正确决定openssl 版本的原因。 通过删除 opensslv.h 中的空间,配置过程现在可以成功。
改成:
#define OPENSSL_VERSION_NUMBER 0x101000bfL