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 条评论

发表回复

您的电子邮箱地址不会被公开。