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内部已经得到大量的应用.它 ...
随机推荐
- java web,从零开始,一步一步配置ssm(Spring+SpringMVC+MyBatis)框架
1.安装JDK: 安装之后要配置环境变量,在系统变量里: 新建变量名JAVA_HOME,变量值C:\Program Files\Java\jdk1.8.0_77: 新建变量名CLASSPATH,变量值 ...
- 【转】windows 控制台cmd乱码的解决办法
windows 控制台cmd乱码的解决办法 我本机的系统环境: OS Name: Microsoft Windows 10 企业版 OS Version: 10.0.14393 N/A Build 1 ...
- MSSQL Server 数据库备份还原常用SQL语句及注意
1.备份数据库 backup database db_name to disk='d:\db_name.bak' with format --通过使用with format可以做到覆盖任何现有的备份和 ...
- blinker语音控制Arduino/esp8266开关灯-滑动条使用-文本框交互
总链接: https://www.arduino.cn/thread-78393-1-1.html 语音控制:https://doc.blinker.app/?file=005-App%E4%BD% ...
- ARDUINO 中断
设置中断函数 attachInterrupt() attachInterrupt(interrupt, function, mode) 描述: 当发生外部中断时,调用一个指定函数.当中断发生时,该 ...
- 关于java中BufferedReader的read()及readLine()方法的使用心得
BufferedReader的readLine()方法是阻塞式的, 如果到达流末尾, 就返回null, 但如果client的socket末经关闭就销毁, 则会产生IO异常. 正常的方法就是使用sock ...
- linux安装sonar
第一步 使用上一篇博客中下载的sonar6.7.6上传到centos7 准备 安装jdk1.8 解压unzip sonarqube-6.7.6.zip 由于elasticsearch需要非root用户 ...
- Omi框架学习之旅 - 通过omi-id来实现组件通讯 及原理说明
这个demo是通过omi-id来获取子类的实例,然后更改data属性,之后updata一下就好了. 老规矩:先上demo代码, 然后提出问题, 之后解答问题, 最后源码说明. class Hello ...
- C语言学习快速笔记
想看java底层的代码,调用了native方法,所以简单的学习了下C,看的是C程序设计语言这本书,主要是在学习基本语法,关于操作系统指令这块都没看. #define关键字用来定义常量,(定义和声明不一 ...
- linux源码分析 - 进程
本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 最近在回想一些知识点的时候,觉得对进程这一块有些模糊,特别写一篇随笔对进程信息进行巩固和复习. 程序和进程 以我 ...