把工程文件交叉编译到arm上运行,着实花费了一番功夫。
首先遇到的错误是 X uses VFP register arguments, B does not
百度了一下,发现是硬浮点和软浮点的问题,原先是思路是改变X的编码方式,迁就于Y,后来怎么弄都不行,改变思路,用armv7-linux的编译器重新编几个库。
 
1.libosscore.a
下载OSS-master.zip
这个库是用cmake编译的,
mkdir build  保证cmake出来的文件和原来的文件区分开
cd build
export PATH=/home/slk/STM/STLinux-2.4/devkit/armv7/arm-cortex-linux-gnueabi/bin:$PATH  使得cmake文件寻找gcc的时候,找到armv7里的gcc
cmake ..
make
 
编译完成,把libosscore.a拷到工程中,编译,出现relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC错误,是在生成libosscore.a的时候,没有使用-fPIC参数的缘故,于是,修改OSSC-master根目录下的CMakeLists.txt文件
     把
    SET(CMAKE_C_FLAGS "-std=c99 -Wall "
    CACHE
    STRING "Flags used by the compiler during all build types." FORCE)
    改为
    SET(CMAKE_C_FLAGS "-std=c99 -Wall -fPIC"
    CACHE
    STRING "Flags used by the compiler during all build types." FORCE)
删掉build中的CMakeCache.txt后重新cmake 和make 。
搞定
 
2.libcurl.a
下载curl-7.42.1.tar.gz
这个库是用configure编译的
同样export PATH=/home/slk/STM/STLinux-2.4/devkit/armv7/arm-cortex-linux-gnueabi/bin:$PATH,这样也不用给configure传参来设定CC。
生成后同样有因为没加-fPIC导致的问题,所以修改所有Makefile文件,在CFALGS后面补上-fPIC
搞定
 
3.libmysqlclient.a
下载mysql-connector-c-6.1.6-src.tar.gz
这个库是用cmake编译的,所以一切步骤同编译libosscore.a,不过可以省去修改CMakeLists.txt一步。
在make到88%的时候,发生 /bin/sh: ./comp_err,无法执行的二进制文件   错误
于是,再解压一份mysql-connector-c-6.1.6-src,用linux下的gcc进行编译,编译成功后,将comp_err拷到交叉编译那边的相应文件夹中,继续make,成功。
搞定。

交叉编译总结 libosscore.a libcurl.a libmysqlclient.a的更多相关文章

  1. 在Linux下使用MinGW静态交叉编译带有zlib的libcurl(包括交叉编译openssl,即--cross-compile-prefix=i686-w64-mingw32- mingw)

    在Linux下使用MinGW静态交叉编译带有zlib的libcurl libcurl是一个跨平台的.易用的.强大的网络库.在大部分Linux发行版中都有编译好的二进制包可供使用,Mac系统更是将其作为 ...

  2. 海思平台交叉编译curl支持SSL功能

    1.准备工具 1).交叉编译工具 2).下载libcurl和openssl源代码,我使用的是(openssl-1.0.2o.tar,curl-7.59.0.tar) 3).查看cpu详细 ~ # ca ...

  3. Ubuntu16.04 ARM平台移植libcurl curl-7.63.0

    libcurl是免费的轻量级的客户端网络库,支持DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS,POP3, P ...

  4. Libcurl交叉编译

    目录 配置configure 执行make 取得su权限 开始安装 踩坑总结 配置configure ./configure --build=arm --host=mipsel-openwrt-lin ...

  5. libcurl 支持 openssl 交叉编译 mips rt5350

    By admin | 11月18日 0 Comment Advertisement 历经半个月终于把libcurl库编译出来,参考网上很多博客,最终把自己要的库编译出来. 首先说明一下,我要这个库的目 ...

  6. 使用mingw 对libcURL,openSSL,zLib交叉编译

    使用mingw 对libcURL,openSSL,zLib交叉编译   将三个库解压到同一目录下 比如取目录名为 "source" 的目录   提前安装active-perl 配置 ...

  7. libcurl的封装,支持同步异步请求,支持多线程下载,支持https

    最近在做一个项目,需要用到http get post等 需求分析需要做到同步和异步,异步请求的返回以可选的回调通知的方式进行. 本人以Linux为例,一步一步的来实现. 配置并且编译libcurl我以 ...

  8. edgex0.7.1_1.0.1的X86编译和交叉编译

    一. X86编译 1. 安装zeromq库 根据setup script安装: wget https://github.com/zeromq/libzmq/releases/download/v4.2 ...

  9. Linux主机上使用交叉编译移植u-boot到树莓派

    0环境 Linux主机OS:Ubuntu14.04 64位,运行在wmware workstation 10虚拟机 树莓派版本:raspberry pi 2 B型. 树莓派OS: Debian Jes ...

随机推荐

  1. WebSocket 学习(三)--用nodejs搭建服务器

    前面已经学习了WebSocket API,包括事件.方法和属性.详情:WebSocket(二)--API  WebSocket是基于事件驱动,支持全双工通信.下面通过三个简单例子体验一下. 简单开始 ...

  2. [Java 安全]消息摘要与数字签名

    消息摘要 算法简述 定义 它是一个唯一对应一个消息或文本的固定长度的值,它由一个单向Hash加密函数对消息进行作用而产生.如果消息在途中改变了,则接收者通过对收到消息的新产生的摘要与原摘要比较,就可知 ...

  3. CCF——Z字形扫描问题

    试题编号: 201412-2 试题名称: Z字形扫描 时间限制: 2.0s 内存限制: 256.0MB 问题描述: 问题描述 在图像编码的算法中,需要将一个给定的方形矩阵进行Z字形扫描(Zigzag ...

  4. eclipse报错:Failed to load the JNI shared library

    Eclipse运行时提示“Failed to load the JNI shared library /Java/jre6/bin/client/jvm.dll”的一个解决方案 因为 Eclipse ...

  5. asp.net mvc项目自定义区域

    前言 直接上干货就是,就不废话了. 使用场景:分离模块,多站点等~~ 一.分离模块 自定义视图引擎,设置视图路径格式 项目结构图 1.Code: 在Global.asax Application_St ...

  6. Cats(2)- Free语法组合,Coproduct-ADT composition

    上篇我们介绍了Free类型可以作为一种嵌入式编程语言DSL在函数式编程中对某种特定功能需求进行描述.一个完整的应用可能会涉及多样的关联功能,但如果我们为每个应用都设计一套DSL的话,那么在我们的函数式 ...

  7. Java基础学习总结——Java对象的序列化和反序列化

    一.序列化和反序列化的概念 把对象转换为字节序列的过程称为对象的序列化. 把字节序列恢复为对象的过程称为对象的反序列化. 对象的序列化主要有两种用途: 1) 把对象的字节序列永久地保存到硬盘上,通常存 ...

  8. POJ-3061

    算法: 1. 定义两个整数N和S,输入序列长度到N,输入最小子序列和下界到S. 2. 定义一个数组arr[100002],从arr[1]开始依次输入N个序列元素到arr. 3. 定义一个整数ans,初 ...

  9. PHP 小数点保留两位

    最近在做统计这一块内容,接触关于数字的数据比较多, 用到了三个函数来是 数字保留小数后 N 位: 接下来简单的介绍一下三个函数: 1.number_format echo number_format( ...

  10. ASP.NET MVC导出excel(数据量大,非常耗时的,异步导出)

    要在ASP.NET MVC站点上做excel导出功能,但是要导出的excel文件比较大,有几十M,所以导出比较费时,为了不影响对界面的其它操作,我就采用异步的方式,后台开辟一个线程将excel导出到指 ...