openssl-1.0.1c交叉编译动态库(转)

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
时间: 2024-08-28 19:37:29

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

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

在 Windows 平台上调用动态链接库 dll 文件时,有两种方式:a) 隐式的加载时链接:使用 *.lib (导入库)文件,在 IDE 的链接器相关设置中加入导入库 lib 文件的名称,或在程序中加入预编译指令 #pragma comment (lib,”*.lib”).b) 显式的运行时链接.不使用 *.lib (导入库)文件,使用 Load Library(),GetProcAddress() 函数来加载动态库中的函数.要注意的是在导入库 lib 文件内部包含了其对应 dll 文件的名称

组件化-动态库实战

http://www.cocoachina.com/articles/19136 组件化-动态库实战 sasukeo·2017-04-27阅读数 22643 本文来自南栀倾寒,作者 sasukeo 起因 理论功底 动态库和静态库 介绍 静态库和动态库的区别 举个例子, iOS 项目中使用 Embeded Framework 静态库和动态库如何构建和加载 静态库和动态库依赖关系 Xcode 项目结构 iOS 依赖管理事实上的标准 解决问题 制作动态库 剖析下动态库 Framework 吧 回过头来

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

目录 0. 引言 1. 交叉编译 2. Cygwin简介 3. 静态库编译及使用 4. 动态库编译及使用 5. MinGW简介 6. CodeBlocks简介 0. 引言 UNIX是一个注册商标,是要满足一大堆条件并且支付可观费用才能够被授权使用的一个操作系统.linux是unix的克隆版本,是由其创始人Linus和诸多世界知名的黑客手工打造的一个操作系统.为什么linux和unix之间有很多软件可以很轻松的移植?因为linux也满足POSIX规范,所以在运行机制上跟unix相近.同时,POSI

Qt5.9.0正式版动态编译 (VS2017) 支持WebEngine 、 ICU 、OpenSSL

尝鲜体验 Qt5.9.0 正式版 动态编译 (VS2017) 支持WebEngine . ICU . OpenSSL模块 此版本只有Release库:具有开发文档: QtLib_VC-x86-shared.7z:http://pan.baidu.com/s/1o8pzeZ4QtLib_VC-x64-shared.7z:http://pan.baidu.com/s/1miHT0kK Release与Debug:32位:http://pan.baidu.com/s/1bpxnem764位:http:

VS2010 编译 openssl 源代码(输出 libeay32 and ssleay32 静态库和动态库)

一.准备工作: 1.下载并安装VS 2010 开发环境. 地址:http://www.downza.cn/soft/185464.html 2.下载 ActivePerl 工具,是一个perl脚本解释器.(我们编译过程中需要执行perl脚本,所以必须安装此工具) 地址:http://downloads.activestate.com/ActivePerl/3.下载 OpenSSL 源代码,openssl 是一个安全套接字层密码库,主要包含密码算法.常用的密钥和证书封装管理功能及实现了SSL协议,

indy openssl lazarus 编程linux下出现不能装载动态库的问题原因!

版本不对的原因. 具体在10.5.9下修改此参数即可解决问题. LoadFunction() has an ACritical parameter. It is set to True by default, but can be set to False for individual functions (and currently is False for TLS 1.1+ and DTLS functions). You can patch IdSSLOpenSSLHeaders.pas

VC++6.0 动态库的创建与调用(非MFC的dll)

非MFC动态库的创建... 一个lib.cpp,一个lib.h /*lib.h*/ #ifndef LIB_H #define LIB_H //声明add为dll的导出函数. extern "C" int _declspec(dllexport)add(int x,int y); #endif 也可以加上def文件 ; lib.def : 导出DLL函数 LIBRARY DllTestDef EXPORTS add @ 1 非MFc动态库的调用 1.静态调用 //静态的调用dll动态库

Windows 下VC++6.0制作、使用动态库和静态库

Windows 下VC++6.0制作.使用动态库和静态库 一.VC++6.0制作.使用静态库 静态库制作 1.如图一在VC++6.0中new一个的为win32 static library工程并新建一个.cpp和一个.h(C++header file)文件 2..cpp程序直接照老师给的打,注意这里需要改错,去掉(long) 3. .h文件需要自己编写格式如下.以head.h为例 #ifndef _HEAD_H_ #define _HEAD_H_ unsigned long unsgn_pow(

交叉编译sqlite3,生成动态库

1.下载源码,解压缩sqlite-autoconf-3300100.tar.gz 2.进入解压目录,执行: #:./configure --host=arm CC=arm-linux-gnueabi-gcc CXX=arm-linux-gnueabi-g++ --prefix=/usr 其中--host=要运行程序的主机 CC/CXX为用到的交叉编译工具链 --prefix=安装目录 3.make 将在当前文件目录下,自动生成可执行文件sqlite3及静态库文件sqlite3.a文件: 4.su