Sqlite,libevent,openssl,mosquito交叉编译
一、设置交叉编译环境
- 在makefile所在目录(或源代码根目录)打开终端。
- 在终端中设置交叉编译所需的临时环境变量(也可写到配置文件中设置为全局环境变量),其中交叉编译工具链的名称和目录需要根据实际目录设置,每次编译前执行以下命令:
export CC=/home/hk/Desktop/sixin/gcc-4.9/bin/mips-linux-gcc
export CXX=/home/hk/Desktop/sixin/gcc-4.9/bin/mips-linux-g++
export AR=/home/hk/Desktop/sixin/gcc-4.9/bin/mips-linux-ar
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/hk/Desktop/sixin/gcc-4.9/lib
二、交叉编译sqlite3
1.设置交叉编译环境。
2.执行以下命令配置编译选项。 --prefix=
后面跟的是编译出来的库的安装目录,需要根据实际情况设置,--host=
后面的内容根据交叉编译工具设置。
./configure --host=arm-linux-gnueabihf --prefix=/home/hk/Desktop/moxa/sqlite-autoconf-3071600/out
make #编译
make install #安装
三、交叉编译openssl
1.设置交叉编译环境。
2.执行以下命令配置编译选项。 --prefix=
后面跟的是编译出来的库的安装目录,需要根据实际情况设置。
编译静态库,
linux:'arm-linux-gnueabihf-gcc'
中arm-linux-gnueabihf-gcc
根据交叉编译工具设置。./Configure linux-elf-arm -DB_ENDIAN linux:'arm-linux-gnueabihf-gcc' --prefix=[输出路径]
make
make install
编译动态库
./config -fPIC no-asm -shared --prefix=/home/hk/Desktop/openssl-1.0.0/out
# 配置完成之后需要修改makefile,将makefile中的 -m64 删除。
make
make install
注意:尽量使用静态库,动态库有时会出错。
四、交叉编译libevent
1.设置交叉编译环境。
2.执行以下命令配置编译选项。 --prefix=
后面跟的是编译出来的库的安装目录,需要根据实际情况设置。
3.CPPFLAGS="-I/usr/local/Cellar/openssl/1.0.2h_1/include"
为openssl头文件目录,LDFLAGS=LDFLAGS="-L/usr/local/Cellar/openssl/1.0.2h_1/lib -lssl -lcrypto"
是编译出来的openssl库目录,需要根据实际情况设置。
./configure --host=arm-linux CPPFLAGS="-I/usr/local/Cellar/openssl/1.0.2h_1/include" LDFLAGS="-L/usr/local/Cellar/openssl/1.0.2h_1/lib -lssl -lcrypto" --prefix=/usr/local
make
make install
五、交叉编译 paho.mqtt.c ,需要先交叉编译 openssl
1.设置交叉编译环境。
2.修改makefile ,在129行添加如下,CFLAGS += -I
后面的内容为openssl头文件目录,LDFLAGS += -L
是编译出来的openssl库目录,需要根据实际情况设置。
# 修改makefile ,在129行添加如下, -I参数后面的内容为 交叉编译openssl库安装目录
CFLAGS += -I./../openssl-1.1.0g/install/include
LDFLAGS += -L./../openssl-1.1.0g/install/lib
#修改后执行make命令编译
make
3.编译完成后,会在当前目录创建build目录,进入build目录,里面有一个output目录和一个版本头文件,output目录中存放着编译出来的库文件,examples和测试程序。
六、交叉编译 mosquitto
- 设置交叉编译环境。
- 修改源文件目录下的
config.mk
文件。- 将
WITH_TLS、WITH_TLS_PSK、WITH_SRV、WITH_UUID 、WITH_DOCS
设置为 no - 在文件头部设置依赖的
paho.mqtt.c
,openssl
头文件和库目录,如下所示:
- 将
# -I参数后面的内容为paho.mqtt.c库和openssl头文件目录,-L参数后面的内容为编译好的paho.mqtt.c库和openssl库目录 ,注意: 实际修改时需要不使用[]。
CFLAGS += -I[paho.mqtt.c源代码目录下的src目录] -I[openssl头文件目录]
LDFLAGS += -L[编译处的paho.mqtt.c库目录] -L[编译出来的openssl库目录] -lssl -lcrypto
Sqlite,libevent,openssl,mosquito交叉编译的更多相关文章
- 使用mingw 对libcURL,openSSL,zLib交叉编译
使用mingw 对libcURL,openSSL,zLib交叉编译 将三个库解压到同一目录下 比如取目录名为 "source" 的目录 提前安装active-perl 配置 ...
- 关于openssl的交叉编译
最近有个项目用到openssl,于是去openssl的官方网站上下载了最新的版本,v1.1.1b版本. 解压之后,发现配置编译,可以使用./config或者./Configure来完成. 网上也查了一 ...
- 更换Qt QtEmbedded库的版本出现问题及解决(交叉编译OpenSSL)
近日将QtEmbedded库的版本由4.7.0更新到4.7.4.工具链并未改变,仍为 Target: arm-none-linux-gnueabiConfigured with: ......Thre ...
- OpenSSL 1.0.2e 3 Dec 2015
目录: 1,交叉编译openssl 2,win32 vc9 编译 openssl 1,交叉编译openssl [原]交叉编译openssl不修改Makefile的方法 http://blog.chi ...
- openssl的移植
下载openssl1.1并解压,进入openssl根目录,执行配置命令 ./Configure linux-armv4 --prefix=$(pwd)/__install 这里使用当前目录下的__in ...
- mosquitto/openssl 在RK3288上的编译以及MQTT客户端的代码示例
1,依赖库openssl 的交叉编译 (1)配置编译器信息 setarch i386 ./config no-asm shared --cross-compile-prefix=arm-linux-a ...
- Martinjingyu的开发环境
Mac Pro Book一台去年新款,最近这4年多折腾的东西总结下. Mac的包管理器首选HomeBrew,安装如下: ruby -e "$(curl -fsSL https://raw.g ...
- CentOS 5.5 下安装Countly Web Server过程记录
CentOS 5.5 下安装Countly Web Server过程记录 1. 系统更新与中文语言包安装 2. 基本环境配置: 2.1. NodeJS安装 依赖项安装 yum -y install g ...
- 大数据应用日志采集之Scribe 安装配置指南
大数据应用日志采集之Scribe 安装配置指南 大数据应用日志采集之Scribe 安装配置指南 1.概述 Scribe是Facebook开源的日志收集系统,在Facebook内部已经得到大量的应用.它 ...
随机推荐
- SQL update select结合语句详解及应用
QL update select语句 最常用的update语法是: 1 2 UPDATE TABLE_NAME SET column_name1 = VALUE WHRER column_name2 ...
- SQL数据库中日期时间类型,按日期group by 实现
每天学习一点点 编程PDF电子书免费下载: http://www.shitanlife.com/code cast(starttime as date): 时间转日期类型 实例SQL: SELECT ...
- Python高级网络编程系列之第二篇
在上一篇中,我们深入探讨了TCP/IP协议的11种状态,理解这些状态对我们编写服务器的时候有很大的帮助,但一般写服务器都是使用C/Java语言,因为这些语言对高并发的支持特别好.我们写的这些简单的服务 ...
- logbak 配置相关
一.配置简单 1. 配置简单,易于上手,通过logback.xml文件进行配置,如果没有配置的话,执行默认配置 <configuration> <appender name=&quo ...
- squid调整
Squid采用新方案部署的调整步骤一,隔离二,修改三,验证四,波及==============================[1] 把被引用到的待修改对像实例,从前端应用负载nginx的配置中摘出 ...
- centos 6.5 gogs迁移外部仓库报错
安装gogs git软件后,使用迁移外部仓库功能,提示“你没有获得导入本地仓库的权限”,发现是因为使用的ssh的链接进行导入 目前gogs咱不支持,随后使用github的https链接导入,依然报错 ...
- PAT A1149 Dangerous Goods Packaging (25 分)——set查找
When shipping goods with containers, we have to be careful not to pack some incompatible goods into ...
- Objective-C 符号化
符号化,顾名思义,就是把地址翻译成人能看懂的符号以及它们在文件中的位置,符号包括函数名和变量名等等. 1.什么地方有符号? 1)App Mach-O格式的二进制文件 2)DWARF(Debugging ...
- P4208 [JSOI2008]最小生成树计数
现在给出了一个简单无向加权图.你不满足于求出这个图的最小生成树,而希望知道这个图中有多少个不同的最小生成树.(如果两颗最小生成树中至少有一条边不同,则这两个最小生成树就是不同的)输出方案数对31011 ...
- IIS导入.pfx证书时报错:"A specified logon session does not exist. It may already have been terminated."
在IIS中可以直接导入.pfx文件来给站点绑定https协议: 如果在导入.pfx文件时,不选择"Allow this certificate to be exported"的话 ...