https://blog.csdn.net/wmx843230304wmx/article/details/102825150
https://www.codenong.com/cs108884585/
https://copyfuture.com/blogs-details/20211208070825402M
- openssl_1_1_1g在ubuntu20上好像无论如何都编译不过
换成1_1_1p最接近1_1_1g的版本就解决了
如果其它依赖openssl的项目报这个错误,就是openssl库和头文件没有安装好,或者安装的位置不对。
- openssl如何被其它的源码引用到,要记得make install到正确的位置 。
cannot find -lssl
cannot find -lcrypto
https://blog.csdn.net/u014248033/article/details/109359024
错误:
/usr/lib/gcc-cross/aarch64-linux-gnu/5/…/…/…/…/aarch64-linux-gnu/bin/ld: cannot find -lssl
/usr/lib/gcc-cross/aarch64-linux-gnu/5/…/…/…/…/aarch64-linux-gnu/bin/ld: cannot find -lcrypto
分析原因:
aarch64-linux-gnu 工具本身没有包含openssl,所以需要把openssl安装到aarch64-linux-gnu指定的使用目录。
解决方法:
首先:使用--verbose | grep SEARCH_DIR
,去搜索aarch64-linux-gnu工具调用时,使用了哪个目录。
grayli@LinuxServer:~/test_case/iperf/demo3/iperf-3.6$ /usr/lib/gcc-cross/aarch64-linux-gnu/5/../../../../aarch64-linux-gnu/bin/ld --verbose | grep SEARCH_DIR
SEARCH_DIR("=/usr/local/lib/aarch64-linux-gnu"); SEARCH_DIR("=/lib/aarch64-linux-gnu"); SEARCH_DIR("=/usr/lib/aarch64-linux-gnu"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/aarch64-linux-gnu/lib");
注意aarch64-linux-gnu/5
,你的目录这个数字不一定是5.
再次:(–prefix=/usr/aarch64-linux-gnu/lib/安装路径就是第一步搜索出来路径)
git clone https://github.com/openssl/openssl.git
cd openssl
git checkout OpenSSL_1_0_2-stable
./config --prefix=/usr/aarch64-linux-gnu/lib/ --cross-compile-prefix=aarch64-linux-gnu- no-asm shared
sed -i "s/-m64//g" Makefile
make
sudo make install
如果还是报错,有可能是安装的目录多了一层lib。
- 注意引用libssl的时候,同时要引用libcrypto。
0 条评论