| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> 交叉编译 openssl libssh2 -> 正文阅读 |
|
[系统运维]交叉编译 openssl libssh2 |
要使用sftp功能,从网上找了QSsh-master代码在centos上编译,结果qt报错 ../../QSsh-master/src/3rdparty/botan/botan.cpp:1127:43: error: impossible constraint in 'asm' 从网上找了没有找到解决办法。就改用libssh2来实现sftp功能在centos6.8上的交叉编译环上编译openssl,执行./configure 失败报错Can't locate IPC/Cmd.pm,百度了下 报错原因:缺少IPC/Cmd.pm模块 解决方法: 安装perl-CPAN, yum install -y perl-CPAN 嫌弃安装软件麻烦,决定把交叉编译环境整到ubuntu 16 32位上。 新建虚拟机,装好系统 ,安装qt环境,编译一个嵌入式程序测试,报错找不到编译器,我设置了环境变量PATH,但就是报错,又百度,说编译其他平台程序 ,环境变量设置是修改/etc/environment文件,后加入后,终于可以编译了。 接着要交叉编译openssl , libssh2 两个 下载源码,先是编译openssl, 先apt-get install libssl-dev 否则报错configure: error: OpenSSL Crypto library not found ./Configure linux-armv4 --cross-compile-prefix=arm-hisiv400-linux- --prefix=/home/mission/sftp/openssl-3.0.1 第一个linux-armv4是嵌入式平台 --cross-compile-prefix是加上交叉编译的前缀,makefile则会自动变成arm-hisiv400-linux-g++等, 且产生的makefile也是能直接使用。 编译好后,再编译libssh2 ./configure ?CC=arm-hisiv400-linux-g++ --prefix=/home/mission/sftp/libssh2-1.10.0 指定编译器后,报错? checking whether we are cross compiling... configure: error: in `/home/mission/sftp/libssh2-1.10.0/libssh2-1.10.0': 后改成./configure ?CC=arm-hisiv400-linux-g++ --prefix=/home/mission/sftp/libssh2-1.10.0 --host=arm-linux 又报错 configure: ERROR: No openssl crypto library found! Specify --with-crypto=$backend and/or the neccessary library search prefix. Known crypto backends: auto, openssl, libgcrypt, mbedtls, wincng 加上了自己编译的openssl的路径,终于好了。 但make时又报错。找不到libatomic.so,把交叉编译环境里的这个库找到放到openssl的库一起,再编译 /opt/hisi-linux/x86-arm/arm-hisiv400-linux/bin/../lib/gcc/arm-hisiv400-linux-gnueabi/4.8.3/../../../../arm-hisiv400-linux-gnueabi/bin/ld: warning: libssl.so.3, needed by ../src/.libs/libssh2.so, not found (try using -rpath or -rpath-link) 参考网上别人的应该是没有加上库路径 又改./configure ?CC=arm-hisiv400-linux-gcc --prefix=/home/mission/sftp/libssh2-1.10.0 --host=arm-linux --with-libssl-prefix=/home/mission/sftp/openssl-3.0.1 LDFLAGS="-Wl,-rpath-link,/home/mission/sftp/openssl-3.0.1/lib",终于好了 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 18:29:26- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |