linux编译相关(13) 

版权声明:本文为博主原创文章,未经博主允许不得转载。

#交叉编译openssl ------
直接修改Makefile
新加这一行:
CROSS_COMPILE= arm-unknown-linux-gnueabi-
定位到以下行
CC= cc改成CC= $(CROSS_COMPILE)gcc
定位到以下行
AR=ar $(ARFLAGS) r
RANLIB= /usr/bin/ranlib
改成
AR=$(CROSS_COMPILE)ar $(ARFLAGS) r
RANLIB= $(CROSS_COMPILE)ranlib
然后修改安装的路劲,定位到以下两行
INSTALLTOP=/usr/local/ssl
OPENSSLDIR=/usr/local/ssl
改成实际安装路径,由于不是在本机运行,所以可以任意指定位置
INSTALLTOP= /someplace/openssl

OPENSSLDIR= /someplace/openssl

重点在这里!!!

以上部分都是按网上资料改的,经过测试可以生成静态库,但生成动态库的修改点却跟网上说的不一样,经过实践需要修改如下几个地方:

先执行如下脚本初步配置一下:
./config no-asm shared --prefix=/home/rebi/cross_tools/build_openssl-1.0.1c/_install
最终总结:需要先执行上面的config,然后手动修改生成的Makefile,并且找到有-m64的地方,全删之(共2处)
然后修改生成的Makefile
最开始,新加这一行:
CROSS_COMPILE= arm-unknown-linux-gnueabi-
定位到以下行
CC= cc改成CC= $(CROSS_COMPILE)gcc
定位到以下行(---这两个不改应该也可以---)
AR=ar $(ARFLAGS) r
RANLIB= /usr/bin/ranlib
改成
AR=$(CROSS_COMPILE)ar $(ARFLAGS) r
RANLIB= $(CROSS_COMPILE)ranlib

经过如上配置,就能同时生成静态和动态库了。

 
0

openssl-1.0.1c交叉编译动态库(转)的更多相关文章

  1. 修改OpenSSL默认编译出的动态库文件名称

    在 Windows 平台上调用动态链接库 dll 文件时,有两种方式:a) 隐式的加载时链接:使用 *.lib (导入库)文件,在 IDE 的链接器相关设置中加入导入库 lib 文件的名称,或在程序中 ...

  2. c/c++编译器配置(交叉编译重要参数)、交叉编译动态库与as配置、mk初步

    gcc/g++/clang,相当于javac: 了解c/c++编译器的基本使用,能够在后续移植第三方框架进行交叉编译时,清楚的了解应该传递什么参数. clang: clang 是一个C.C++.Obj ...

  3. libjpeg 交叉编译动态库和静态库

    1.下载libjpeg库,解压之     得到了jpeg6b和libtool-2.2.4两个文件夹. 2.编译安装libtool工具.   这是配置libtool,这里需要注意:configure 参 ...

  4. Windows的静态库与动态库

    Windows的静态库与动态库 1.静态库 1.1 静态库特点 运行不存在 静态库源码被链接到调用程序中 目标程序的归档 1.2 C语言静态库 C静态库的创建 创建一个静态库项目. 添加库程序,源文件 ...

  5. C/C++ 跨平台交叉编译、静态库/动态库编译、MinGW、Cygwin、CodeBlocks使用原理及链接参数选项

    目录 . 引言 . 交叉编译 . Cygwin简介 . 静态库编译及使用 . 动态库编译及使用 . MinGW简介 . CodeBlocks简介 0. 引言 UNIX是一个注册商标,是要满足一大堆条件 ...

  6. vs2008编译openssl,静态库/动态库,批处理

    ::前期准备准备工作::1,下载安装好ActivePerl,::2,下载Openssl源码::3,本机有安装vc::4,此例在vs2008(vc9),openssl-1.0.2o下完成 echo of ...

  7. openssl动态库编译

    通常Linux系统自带OpenSSL,但是其so文件由于没有debug信息,因此无法跟踪内部函数,对于学习 不太方便,需要通过源码重新安装.         我的Linux系统是CentOS7,自带的 ...

  8. Android:JNI与NDK(二)交叉编译与动态库,静态库

    欢迎关注公众号,第一时间获取最新文章: 本篇目录 一.前言 本篇主要以window开发环境为背景介绍一下NDK开发中需要掌握的交叉编译等基础知识,选window系统主要是照顾大多数读者,mac ,li ...

  9. Android 5.0 到 Android 6.0 + 的深坑之一 之 .so 动态库的适配

    (原创:http://www.cnblogs.com/linguanh) 目录: 前序 一,问题描述 二,为何会如此"无情"? 三,目前存在该问题的知名SDK 四,解决方案,1 对 ...

随机推荐

  1. selective search生成.mat文件

    https://github.com/sergeyk/selective_search_ijcv_with_python 里的selective_search.py是python接口 import t ...

  2. python_37_文件修改

    f=open('yesterday','r',encoding='utf-8') f_new=open('yesterday_update','w',encoding='utf-8') for lin ...

  3. AngularJs学习笔记-组件生命周期

    组件生命周期 (1)组件生命周期钩子 constructor:组件创建时被创建 ngOnChanges: 父组件修改或初始化子组件的输入属性时被调用,如果子组件没有输入属性,则永远不会被调用,它的首次 ...

  4. sql注入问题 java中将MySQL的数据库验证秘密加上 ' or '1'= '1 就可以出现万能密码

    password的字符串中,加上 ' or '1'= '1 就可以制作出万能密码. 原因如下: 原代码中密码是123456 执行数据库查询语句 实际上执行的SQL语句是: select * from ...

  5. 2019 ACM-ICPC全国邀请赛(西安) M.Travel 二分+判联通

    https://nanti.jisuanke.com/t/39280 讲道理这题写bfs求最大边权限制下从1到n的最短步数,然后二分判一下就行了. 然鹅我还是直接套了dij,一开始纠结dij能不能过, ...

  6. Mysql--数据操作语言(DML)

    定义:数据操作语言主要实现对数据库表中的数据进行操作,主要包括插入(insert).更新(update).删除(delete).查询(select),本节主要介绍增删改. 数据准备: 一.数据的插入( ...

  7. git线上线下冲突

    今天用git pull来更新代码,遇到了下面的问题: error: Your local changes to the following files would be overwritten by ...

  8. mysql面试题:字段中@之前字符相同且大于等于2条的所有记录

    公司发了一张面试题给我,题目如下: 在test数据库中有个flow_user表,找出email字段中@之前字符相同且大于等于2条的所有记录 答案: select substring_index(`em ...

  9. vue.js 服务端渲染nuxt.js反向代理nginx部署

    vue.js的官方介绍里可能提到过nuxt.js,我也不太清楚我怎么找到这个的 最近项目vue.js是主流了,当有些优化需求过来后,vue还是有点力不从心, 比如SEO的优化,由于vue在初始化完成之 ...

  10. ZendFramework-2.4 源代码 - 关于服务管理器

    // ------ 决定“服务管理器”配置的位置 ------ // 1.在模块的入口类/data/www/www.domain.com/www/module/Module1/Module.php中实 ...