缘起
要给测试支持一下,在SUSE Linux上安装libssh2,环境上有了openssl-1.0.1g和libssh2-1.8.0。
-
uname -a
还看不了发行版本。只能使用cat /etc/issue
或lsb_release -a
查看。
-
解决过程
第一步
之前没有安装过,于是搜索一番。linux环境编译libssh2
- 有且只找到一个合适的,当时一直卡在
-fPIC
参数的问题,虽解决./config的问题,但make时又报错。
- 有且只找到一个合适的,当时一直卡在
没招了,跟同事反馈了一下,给了一份简要的指导
-
./config --prefix=/home/openssl-1.0.1g --openssldir=/home/openssl-1.0.1g/ssl
,根据文档里的这个命令改成源码的路径。 - 执行报错 Makefile:548: recipe for target ‘install_sw’ failed,根据提示,重新配置了一下,make OK。
-
第二步
移交给测试后,她试了一下还是报错。fatal error:libssh2_config.h:No such file or directory。
- 这个大概率就是路径没有配置正确。
-I/src -I/include
- 在
.profile
里export LIBSSH2_HOME=/usr/local/libssh2
,执行source .profile
后,编译代码路径下的Makefile.incl.platform
就能得值,执行就OK。
- 这个大概率就是路径没有配置正确。
第三步
- 说是HP和SUSE的还不太一样,HP的还需要再修改值。被勉励了 要自己多思考和定位,而不要总想着现成的。
- 想到了之前升级GCC6的时候,其实也这么配过,但没想过这么多,当时就是照着抄了。
- 源代码编译时,要抽象出一些方法论来,确实思路都差不多。
内容
cd openssl-1.0.1s/
./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl/ssl
make && make install
./config shared --prefix=/usr/local/openssl --openssldir=/usr/local/openssl/ssl
make clean
make && make install
cd libssh2-1.8.0/
./configure --prefix=/usr/local/libssh2 --with-openssl CPPFLAGS="-I/usr/local/openssl/include" LDFLAGS="-L/usr/local/openssl/lib"
make clean
make && make install
其它
- 20190128安装的,20190129整理。