# 主机环境 ubuntu 18..04LTS
https://www.openssl.org/source/old/
编译libssh2时依赖openssl, 我的库中没有这个,因此首先移植这个。
这里试着编译了两种版本,首先尝试的是1.1.1版本,不过这个版本依赖glibc版本为2.25或更高,而我的glibc版本为2.21,因此最终放弃了这个版本,最终使用的是旧版 1.0.0。
tar xvf openssl-1.1.1e.tar.gz
cd openssl-1xx
./config CC=arm-linux-gnueabi-gcc no-asm --prefix=<INSTALL DIR>
vim Makefile
# 搜索 '-m64' 并删除
make clean
make
make install
因为glibc的移植太麻烦了。改为移植较旧的openssl.
这个版本跟上面配置不一样,开始整了挺久,这玩意用的是./Configure
配置
下面编译:
tar xvf openssl-1.0.0s.tar.gz
cd openssl-1.0.0s/
./Configure --prefix=<INSTALL DIR> shared no-asm linux-armv4
make clean
make CC=arm-linux-gnueabi-gcc
make install
直接用./config CC=arm-linux-gnueabi-gcc no-asm --prefix=<INSTALL DIR> shared --host=arm-linux
的话,报以下信息,但实际是没配置好的
Operating system: x86_64-whatever-linux2
Configuring for linux-x86_64
target already defined - linux-x86_64 (offending arg: CC=arm-linux-gnueabi-gcc)
tar xvf libssh2-1.9.0.tar.gz
cd libssh2-1.9.0/
./configure CC=arm-linux-gnueabi-gcc \
--prefix=/home/socbis/Xilinx/lib_build/libssh2 \
--host=arm-linux \
--with-libssl-prefix=<INSTALL DIR> \
LDFLAGS="-Wl,-rpath-link,/home/socbis/Xilinx/lib_build/openssl/lib"
make && make install
如:ld: warning: libssl.so.1.1, needed by ../src/.libs/libssh2.so, not found (try using -rpath or -rpath-link)
在原配置中添加LDFLAGS="-Wl,-rpath-link,/home/socbis/Xilinx/lib_build/openssl/lib"
./configure CC=arm-linux-gnueabi-gcc \
--prefix=/home/socbis/Xilinx/lib_build/libssh2 \
--host=arm-linux \
--with-libssl-prefix=/home/socbis/Xilinx/lib_build/openssl \
LDFLAGS="-Wl,-rpath-link,/home/socbis/Xilinx/lib_build/openssl/lib"
查看gcc编译器 include <> 搜索路径
$ gcc -E -v -
#省略...
#include "..." search starts here:
#include <...> search starts here:
/usr/lib/gcc/x86_64-linux-gnu/7/include
/usr/local/include
/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed
/usr/include/x86_64-linux-gnu
/usr/include
End of search list.
$ arm-linux-gnueabi-gcc -E -v -
#省略...
#include "..." 搜索从这里开始:
#include <...> 搜索从这里开始:
/home/socbis/gcc/gcc-linaro-7.4.1-2019.02-x86_64_arm-linux-gnueabi/bin/../lib/gcc/arm-linux-gnueabi/7.4.1/include
/home/socbis/gcc/gcc-linaro-7.4.1-2019.02-x86_64_arm-linux-gnueabi/bin/../lib/gcc/arm-linux-gnueabi/7.4.1/include-fixed
/home/socbis/gcc/gcc-linaro-7.4.1-2019.02-x86_64_arm-linux-gnueabi/bin/../lib/gcc/arm-linux-gnueabi/7.4.1/../../../../arm-linux-gnueabi/include
/home/socbis/gcc/gcc-linaro-7.4.1-2019.02-x86_64_arm-linux-gnueabi/bin/../arm-linux-gnueabi/libc/usr/include
搜索列表结束。