我正在升级openssl
& openssh
平台的QNX
个版本,从openssl 1.0.0e
到1.0.1g
& openssh-5.6p1
至openssh-6.6p1
所以使用我的linux机器我正在交叉编译以生成QNX
的二进制文件
完成下面提到的所有步骤后,当我运行./ssh -V
时,我得到了这个输出
OpenSSH_6.6p1, OpenSSL 0.9.8g 19 Oct 2007
但我使用openssl 1.0.1g
生成ssh
个二进制文件。
任何人都可以告诉我从哪里得到错误的版本?
步骤:
已下载openssl-1.0.1g.tar.gz
& openssh-6.6p1.tar.gz
然后untar
。
2. cd openssl-1.0.1g
&运行此config
命令
CC=qcc CXX=qcc AR=nto${I_CPU}-ar LD=qcc RANLIB=nto${I_CPU}-ranlib CFLAGS+="-Vgcc_nto${I_CPU} -fPIC -DPIC" LDFLAGS+="-Vgcc_nto${I_CPU} -shared" ./Configure QNX6-i386 -shared --prefix=/home/vamsi/build_ppc --openssldir=/home/vamsi/build_ppc/openssl_dir
cd openssh-6.6p1
&运行此config
命令
CC = qcc CFLAGS =“ - Vgcc_nto $ {I_CPUX} -L / home / vamsi / build_ppc / lib”AR = nto $ {I_CPUX} -ar LD = qcc LDFLAGS =“ - Vgcc_nto $ {I_CPUX} -L / home / vamsi / build_ppc / lib“CXX = qcc CPPFLAGS + =” - DMISSING_HOWMANY -DMISSING_NFDBITS -DMISSING_NFDMASK“./ configure --disable-lastlog --host = ppcbe --with-ssl-dir = / home / vamsi / build_ppc / openssl_dir --prefix = / home / vamsi / build_ppc --disable-etc-default-login
make clean
完成这些步骤后,我将生成的ssh
二进制文件复制到目标计算机并尝试运行./ssh -V
当我将openssl
Binary复制到目标QNX
机器并尝试执行此命令时
./openssl
提供此错误
./openssl[1]: syntax error: '(' unexpected
注意:我没有在目标计算机上安装ssh,但我只想要新版本ssh
二进制文件,因此我正在运行./ssh -V
而不是ssh -V
我能够使用此ssh
(生成的二进制文件)成功连接到任何地址。
在制作这个Binary时我得到了这个警告
skipping incompatible /home/vamsi/build_ppc/lib/libcrypto.a when searching for -lcrypto
这个警告是否与我面临的问题有关?
我尝试使用openssl版本1.0.0l,但ssh -v的输出仍显示为
OpenSSH_6.6p1,OpenSSL 0.9.8g 2007年10月19日
答案 0 :(得分:0)
在这些步骤之后,我将生成的ssh二进制文件复制到目标中 机器并尝试运行./ssh -V
此外,当我将openssl Binary复制到目标QNX机器
时
这个和comments you've posted on your other question关于ldd
的输出:" 在创建二进制文件时,它会使用以前的库而不是新生成的库。&# 34;似乎建议你只复制这两个可执行文件,而不是你编译过的库。
您不需要openssl
命令来使用ssh
,但您需要OpenSSL库(libssl.something.so
)。
如果你想在本地目录中进行测试,而不是覆盖系统的库(我建议你这样做,因为你似乎并不确定这一切是如何工作的),考虑使用LD_LIBRARY_PATH
指向您安装这些库的路径。
一般来说,阅读LD_LIBRARY_PATH
是个好主意。在Linux上,我还考虑使用ldconfig
,但I'm not sure if there's an equivalent on QNX。