`
webcenterol
  • 浏览: 917402 次
文章分类
社区版块
存档分类
最新评论

Linux下第三方库交叉编译

 
阅读更多

Linux下第三方库交叉编译

最后更新日期:2010-9-11

作者:Kagula

环境:Ubuntu8.04.1 + arm-linux-gcc-4.3.2

本文主要内容:ZlibOpenSSLOpenSSHCTorrent交叉编译。

Zlib交叉编译

#zlib版本1.2.5

#./configure --shared

#make LDSHARED="arm-linux-gcc -shared -Wl,-soname,libz.so.1" CC_FOR_BUILD="arm-linux-gcc" CC="arm-linux-gcc" LD="arm-linux-ld" CPP="arm-linux-g++ -E" AR="arm-linux-ar rc" prefix="/usr/local/arm/4.3.2" CFLAGS="-fPIC" libz.so.1.2.5 libz.a

#拷贝zconf.h zlib.h/home/kagula/arm432/include/

#拷贝 libz* /home/kagula/arm432/lib/

#原文http://blog.csdn.net/x uxinshao/archive/2008/01/24/2063876.aspx

备注:应该把上面prefix参数的值改一下,后来手动安装就算了。

OpenSSL交叉编译

#openssl版本0.9.8o

方式一:生成静态库

# ./config --prefix=/home/kagula/arm432 no-asm shared os/compiler:arm-linux-gcc

修改MakeFile文件中的以下变量

EX_LIBS= -ldl

AR= arm-linux-ar $(ARFLAGS) r

ARD=arm-linux-ar $(ARFLAGS) d

RANLIB= arm-linux-ranlib

#Make

#Make install

生成libssl.a libcrytpo.a (这两个库的使用顺序不能颠倒)

备注:【1】使用os/compiler选项会导致shared参数不起作用,即只能生成静态库【2】如果刚编译成x86版本的,编译成arm版本之前记得要make clean下清除掉x86版本的目标文件。

方式二:生成动态库

#CC=arm-linux-gcc ./config no-asm shared --prefix=/home/kagula/arm432

如上修改MakeFile文件中的变量

#Make

#Make install

在安装目录就会看到libssl.solibcrypto.so相关文件

OpenSSH交叉编译

#openSSH版本4.7.p1

#./configure --host=arm-linux --with-libs --with-zlib=/home/kagula/arm432 --with-ssl-dir=/home/kagula/arm432 --disable-etc-default-login CC=arm-linux-gcc LD=arm-linux-ld AR=arm-linux-ar --prefix=/home/kagula/arm432

#make

#make install会出现strip出错,参考“参考资料[1]”完成OpenSSH的安装,建议使用make install –i命令

备注:

[1]若你开发机OS中的Vmware上的GuestOS网卡必须改为“Bridge”,否则Arm板无法访问你开发机中的VMware中的GuestOS

[2]arm9板使用kagula帐号远程连接SSH服务器(192.168.0.171)

#./ssh –l kagula 192.168.0.171

[3]装在arm432目录下的OpenSSH得使用Chmod命令使之可执行,然后参考“参考资料[2]”让OpenSSH服务跑起来。期间可能要求你新增一个SSH帐号,使用adduser命令即可。

CTorrent交叉编译

#CTorrent版本dnh3.3.2

#CC=arm-linux-gcc CXX=arm-linux-g++ ./configure --host=arm-linux --prefix=/home/kagula/arm432 --with-ssl=/home/kagula/arm432

#make

#make install

CTorrent使用

[1]/home/kagula/arm432目录打成包

#tar –zcvf arm432.gz arm432

[2]arm432.gz下到arm9开发板

#ftp 192.168.0.101

ftp>binary

ftp>put arm432.gz

bye

[3]在开发板/home/kagula目录下解压arm432.gz

#tar –zxvf arm432.gz

[4]修改arm9板上的/etc/profile文件

PATH=/home/kagula/arm432/bin:$PATH

LD_LIBRARY_PATH=/usr/lib:/usr/local/lib:/home/kagula/arm432/lib

EXPORT LD_LIBRARY_PATH

[5]重启开发板后就可以在任意目录下运行ctorrent

参考资料

[1]Openssh移植经验谈》

http://blog.csdn.net/dzassn/archive/2007/09/08/1776971.aspx

[2]《解决启动SSHD服务时报错》

http://firesk.blog.51cto.com/180373/46625

分享到:
评论

相关推荐

    python和它的第三方库交叉编译过程

    python库和其第三方库,在嵌入式linux操作系统上交叉编译的步骤

    OpenCV第三方库和交叉编译工具

    本资源包含编译OpenCV是可能需要的一些第三方库,和交叉编译工具arm-linux-gcc4.4.3,有需要的朋友可以下载。

    用4.3.2交叉编译好的opencv2.4.9所需依赖库

    一、编译环境及库文件 linux环境:ubuntu12.04 交叉编译:4.3.2 arm板子:iTOP4412开发板 libz: libjpeg: libpng: libyasm: opencv: libx264: libxvid: lffmpeg: cmake:

    Net-SNMP动态库方式扩展MIB示例源码

    Net-SNMP动态库方式扩展MIB,Hello SNMP扩展示例,仅供参考,做相关开发的可以自行动态扩展

    python3.9.18交叉编译 arm 版

    除了 tinker 库没有交叉编译之外,其余用到的库全部通过交叉编译实现。 包括 openssl,zlib,pip 等 交叉编译器:arm-linux-gnueabihf-gcc cpu 支持 armv7l,32 位 如果需要第三方的库的交叉编译需求,可私信

    crossenv:交叉编译用于Python的virtualenv

    为系统构建Python之后,您可能会发现自己需要包含许多第三方库。 纯Python库通常只能工作,但是许多流行的库都依赖于已编译的C代码,这在构建时可能具有挑战性。 该软件包是用于交叉编译扩展模块的工具。 它创建了...

    Linux多线程服务端编程:使用muduo C++网络库

    《Linux多线程服务端编程:使用muduo C++网络库》主要讲述采用现代C++在x86-64 Linux上编写多线程TCP网络服务程序的主流常规技术,重点讲解一种适应性较强的多线程服务器的编程模型,即one loop per thread。...

    OpenCV 3.2.0 移植到ARM所需要的第三方库包.zip

    OpenCV 3.2.0 移植到ARM所需要的第三方库包,OpenCV交叉编译工具链。包括(zlib-1.2.8.tar.gz、yasm-1.3.0.tar.gz、xvidcore_1.3.3.orig.tar.gz、libpng-1.6.32.tar.xz、last_x264.tar.bz2、jpegsrc.v9b.tar.gz、...

    pcl_linux.zip

    对于3d点云来说,pcl完全。是一个模块化的现代C++模板库。 基于以下第三方库:boost、flann、vtk、qhull等实现点云相关的获取、滤波、配准、检索、特征提取、识别、追踪、可视化等。

    基于LINUX下智能手机的设计(毕业设计)

    最后,建立硬件环境和交叉编译环境,在 Linux 环境下,编译代码生成可执 行文件,由交叉编译器在基于 GPRS 模组的 ARM9 开发板上运行可执行程序,通过 触摸板上面的虚拟按键进行功能的检测,根据检测的结果优化程序...

    contribs-1.0.2-gcc-4.2.1-sjlj-runtime-3.15.2-only.tar.bz2

    vlc-1.0.2 linux-windows交叉编译的预编译的第三方contrib库依赖

    MalletEngine:基于模块化设计的功能强大的实体组件游戏引擎和编辑器。 在Linux,Windows,Mac,Android和iOS上可用

    我们的目标是将第三方的依赖性降到最低,目前仅要求桌面使用JOGL和JSON。 Android提供OpenGL和JSON作为其平台的一部分。 需要Java 8和Gradle。 每个受支持的平台都有自己的构建脚本,这些脚本位于其根目录下的目录...

    gcc:Gnu交叉的docker映像

    GNU交叉编译1.初始化docker基本镜像$ docker buildx build --platform linux/amd64,linux/386,linux/arm64,linux/arm/v7,linux/arm/v6 -t kayuii/gcc:base -f ./Dockerfile ....第三方镜像。 163 mirrors.163

    eclipse工程,从linux(ubuntu)到windows的迁移

    eclipse工程,从linux(ubuntu)到windows的迁移。近日,由于工作需要,需要将之前写的一个java工程转移到linux下运行。说明网址:http://blog.csdn.net/sayigood/archive/2010/04/14/5485222.aspx

    Qt5虚拟键盘支持拖动中文拼音,大小修改

    Qt虚拟虚拟键盘修改了源码,实现中引文切换,大小修改

    PortingPython.md

    是本人向ARM Linux上通过交叉编译的方式移植PYTHON ,以及PYTHON第三方库numpy的工作记录。踩了好多坑后,按照这个方法移植后的numpy可以在arm上正常工作。 文件是markdown格式的。如有问题欢迎交流。

    SClass:C ++中用于构建应用程序的类

    S级C ++中的类,用于构建跨平台应用程序。 有关示例用法,请参见 。 它使用“ smake”作为构建系统。 smake可以如下编译: 在Linux(x64)中cd build/Linux_x64make smake在Windows...第三方它是ThirdParty库源/头文件

    inkview:用于 Pocketbook 的 Go SDK

    尽管此二进制文件将在设备上运行,但是您将需要第三方应用程序才能实际看到程序的输出(如 )。 第二个选项是将程序包装到RunCLI ——它将模拟终端输出并将其写入设备显示器。 准备 - 构建 Docker 镜像 为了您的...

    Reversing:逆向工程揭密

    本书是在我参与了多年的软件开发项目之后写的,这些项目由于各种各样的原因需要反复地对第三方代码进行逆向工程。起初,我觉得这是一个非常单调乏味的过程,只是在没有替代方法来获取信息的情况下才不得已使用它。...

Global site tag (gtag.js) - Google Analytics