我需要为我的ARM目标编译一个libwebsocket库,这需要openssl才能运行。 当我在cmake ...
的时候构建最新的libwebsocket时,我遇到了以下错误但是这里安装了openssl
whereis openssl
openssl: /usr/bin/openssl /usr/bin/X11/openssl /usr/share/man/man1/openssl.1ssl.gz
===================================错误=========== =====
-- Looking for 4 include files stdlib.h, ..., float.h - found
-- Found ZLIB: /usr/lib/arm-linux-gnueabihf/libz.so (found version "1.2.7")
ZLib include dirs: /usr/include
ZLib libraries: /usr/lib/arm-linux-gnueabihf/libz.so
Compiling with SSL support
CMake Error at /usr/local/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:97 (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/local/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:291 (_FPHSA_FAILURE_MESSAGE)
/usr/local/share/cmake-2.8/Modules/FindOpenSSL.cmake:313 (find_package_handle_standard_args)
CMakeLists.txt:436 (find_package)
-- Configuring incomplete, errors occurred!
======================================= openssl在这里===== ===================
ignite@ignite:~/sbox2/rootfs/rfs-raspbian_2/home/pi/libwebsockets/build$ whereis openssl
openssl: /usr/bin/openssl /usr/bin/X11/openssl /usr/share/man/man1/openssl.1ssl.gz
实际上我有,从这里获取tarball。它有配置脚本来制作& make install
http://www.openssl.org/source/
OpenSSL的-1.0.1e.tar.gz
所以这个(openssl-1.0.1e.tar.gz)将是正确的包 - >> openssl-dev或openssl-devel ---这样我就可以解决这个错误了?
答案 0 :(得分:0)
所以这个(openssl-1.0.1e.tar.gz)将是正确的包 - >> openssl-dev或openssl-devel ---这样我就可以解决这个错误了?
openssl-dev
包用于主机上的开发(可能是x86或x64系列)。您需要为目标(而不是主机)交叉编译库。所以openssl-dev
可能无法解决您的问题。
您的目标是通用ARM处理器,iOS还是Android?如果是前者,您将需要一个具有适当路径设置的手臂交叉工具链。我不知道有关交叉编译库的好教程(过去我遇到过它)。
有一些用于通用交叉编译的预构建配置。打开Configure
和config
,查看一些三元组。 (OpenSSL不使用Automake和朋友)。
如果是iOS或Android,OpenSSL wiki有一些交叉编译平台的例子。例如,请参阅FIPS Library and Android。 setenv-android.sh
脚本是最重要的,因为它设置了路径,sysroot和工具链。一旦设置了路径和工具链,其余部分就很容易了。
如果您的目标是通用ARM,那么您可以使用Android setenv-android.sh
作为通用构建的起点。完成构建后,将OPENSSL_ROOT_DIR
指向ARM的安装目录。