200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 源码编译wget问题解决

源码编译wget问题解决

时间:2018-12-05 05:35:16

相关推荐

源码编译wget问题解决

源码编译wget问题解决

工作需要交叉编译高版本wget,以实现嵌入式设备的https下载,其中遇到一些编译问题,如openssl.c:(.text+0x6a1): undefined reference to 'SSLv2_client_method'遂记录一下。

编译openssl

下载openssl源码,需要编译为共享库,默认编译为静态库,据说编译为静态库最后在编译wget时链接不了。

找一个支持SSL2的OpenSSL版本(比如OpenSSL 1.0.2),用下面的命令重新生成Makefile文件

./config shared

编译

make

make install

但是make install之后我并没有在/lib或者/usr/lib下面找到这些库libssl.so libcrypto.so。那我就手动复制吧,复制过去还是一样的效果,编译wget时还是提示SSLv2_client_method未定义。表明最后链接的时候还是没有链接对。

于是我locate libpthread.so找一下动态库都放哪个目录了。找到在目录/usr/lib/i386-linux-gnu/libpthread.so/lib/i386-linux-gnu/libpthread.so.0。于是我再把cp过去就发现可以编译过了。

cp libcrypto.so* /lib/i386-linux-gnu/

cp libssl.so* /lib/i386-linux-gnu/

编译wget

执行./configure && make就行了

交叉编译openssl

配置编译为共享库

./config no-asm shared –prefix=`pwd`/llm/

修改Makefile

PLATFORM=linux-elf-arm

CC=/projects/hnd/tools/linux/hndtools-arm-linux-2.6.36-uclibc-4.5.3/bin/arm-brcm-linux-uclibcgnueabi-gcc

去掉CFLAG里面的-march=pentium

编译

make && make install

编译后的库文件在当前目录的./llm/lib/里面。

交叉编译wget

配置,主要传入host,CC,prefix参数

./configure –host=arm-brcm-linux-uclibcgnueabi –disable-debug CC=/projects/hnd/tools/linux/hndtools-arm-linux-2.6.36-uclibc-4.5.3/bin/arm-brcm-linux-uclibcgnueabi-gcc –prefix=`pwd`/llm/

编译

make

因为这交叉编译工具链集成了openssl库,所以可以编过,如果链接时不过,那么就需要手动指定链接上面我们交叉编译过的openssl库。

然后把src目录下的wget和交叉编译生成的opssl库编译进目标板里面就可以使用wget进行https下载了。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。