日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

ARM-Linux下交叉编译opessl-1.0.0

發(fā)布時(shí)間:2023/12/10 linux 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ARM-Linux下交叉编译opessl-1.0.0 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
?本次任務(wù)是要完成嵌入式Linux下對(duì)openssl程序的支持。
??? 我的開發(fā)環(huán)境:ARM9開發(fā)板 和 嵌入式Linux操作系統(tǒng)。裝有Linux系統(tǒng)(我的是ubuntu9.04)的PC機(jī)一臺(tái)。串口和串口連接線。串口調(diào)試軟件:minicom。交叉編譯工具:arm-unknown-linux-gnu-gcc
??? 下載最新版本的openssl-1.0.0:
????
http://www.openssl.org/source/
????
??? 解壓:$tar -xzvf??
openssl-1.0.0.tart.gz
????????? ? $cd openssl-1.0.0
??????? openssl-1.0.0$ ./config no-asm shared prefix=/home/lanpeng/arm-openssl
? ? 解釋一下這里的參數(shù): config就是配置腳本,這里不多說了。no-asm是在交叉編譯過程中不使用匯編代碼代碼加速編譯過程.原因是它的匯編代碼是對(duì)arm格式不支持的。我試過了,如果沒有這個(gè)參數(shù),你的交叉編譯一定出錯(cuò)。shared生成動(dòng)態(tài)連接庫。prefix=路徑? 就是你的安裝目錄。安裝完成后在這個(gè)目錄下會(huì)有四個(gè)文件夾:bin lib include ssl。這四個(gè)目錄非常重要,openssl編程就需要這些目錄的配合。
? ? 配置完成后我們還要修改Makefile文件(或許有更好的辦法不用修改Makefile,這里請(qǐng)高手指點(diǎn))。修改如下:

? ? ????

? 62 #CC= gcc
?63 CC = arm-unknown-linux-gnu-gcc
?64 #CFLAG= -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAV??? E_DLFCN_H -DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall
?65 CFLAG= -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DOPENSSL_N??? O_KRB5 -DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall
?66 DEPFLAG= -DOPENSSL_NO_GMP -DOPENSSL_NO_JPAKE -DOPENSSL_NO_MD2 -DOPENSSL_NO_R??? C5 -DOPENSSL_NO_RFC3779 -DOPENSSL_NO_STORE
?67 PEX_LIBS=
?68 EX_LIBS= -ldl
?69 EXE_EXT=
?70 ARFLAGS=
?71 #AR= ar $(ARFLAGS) r
?72 AR = arm-unknown-linux-gnu-ar $(ARFLAGS) r
?73 RANLIB = arm-unknown-linux-gnu-ranlib
?74 #RANLIB= /usr/bin/ranlib
?75 #NM= nm
?76 NM = arm-unknown-linux-gnu-nm
?77 PERL= /usr/bin/perl
?78 TAR= tar
?79 TARFLAGS= --no-recursion
?80 MAKEDEPPROG= gcc
?81 LIBDIR=lib

? 即使用交叉編譯工具去編譯openssl。
? 修改好了以后執(zhí)行命令:? opensl-1.0.0$ make

? 要編譯5分鐘左右,慢慢等吧。
? 然后在輸入命令:??
opensl-1.0.0$ make install

? 沒有錯(cuò)誤!恭喜了,安裝成功。

? 接下來就使用openssl來編程把。

? 我在網(wǎng)上找了一段程序,openssl棧的編程:myssl.c:

??
?? ?
?

#include?<stdio.h>
#include?<stdlib.h>
#include?<string.h>
#include?<openssl/safestack.h>
????
#define?sk_Student_new(st)?SKM_sk_new(Student,?(st))
#define?sk_Student_new_null()?SKM_sk_new_null(Student)
#define?sk_Student_free(st)?SKM_sk_free(Student,?(st))
#define?sk_Student_num(st)?SKM_sk_num(Student,?(st))
#define?sk_Student_value(st,?i)?SKM_sk_value(Student,?(st),?(i))
#define?sk_Student_set(st,?i,?val)?SKM_sk_set(Student,?(st),?(i),?(val))
#define?sk_Student_zero(st)?SKM_sk_zero(Student,?(st))
#define?sk_Student_push(st,?val)?SKM_sk_push(Student,?(st),?(val))
#define?sk_Student_unshift(st,?val)?SKM_sk_unshift(Student,?(st),?(val))
#define?sk_Student_find(st,?val)?SKM_sk_find(Student,?(st),?(val))
#define?sk_Student_delete(st,?i)?SKM_sk_delete(Student,?(st),?(i))
#define?sk_Student_delete_ptr(st,?ptr)?SKM_sk_delete_ptr(Student,?(st),?(ptr))
#define?sk_Student_insert(st,?val,?i)?SKM_sk_insert(Student,?(st),?(val),?(i))
#define?sk_Student_set_cmp_func(st,?cmp)?SKM_sk_set_cmp_func(Student,?(st),?(cmp))
#define?sk_Student_dup(st)?SKM_sk_dup(Student,?st)
#define?sk_Student_pop_free(st,?free_func)?SKM_sk_pop_free(Student,?(st),?(free_func))
#define?sk_Student_shift(st)?SKM_sk_shift(Student,?(st))
#define?sk_Student_pop(st)?SKM_sk_pop(Student,?(st))
#define?sk_Student_sort(st)?SKM_sk_sort(Student,?(st))
????
typedef????struct????Student_st
{
????char????????*name;
????int????????age;
????char????????*otherInfo;
}Student;
typedef????STACK_OF(Student)????Students;
????
Student?*Student_Malloc()
{
????Student?*a=malloc(sizeof(Student));
????a->name=malloc(20);
????strcpy(a->name,"zcp");
????a->otherInfo=malloc(20);
????strcpy(a->otherInfo,"no info");
????return?a;
}
????
void????Student_Free(Student?*a)
{
????free(a->name);
????free(a->otherInfo);
????free(a);
}
static????int?Student_cmp(Student?*a,Student?*b)
{
????int????????ret;

????ret=strcmp(a->name,b->name);
????return?ret;
}
????
int????main()
{
????Students????????*s,*snew;
????Student?????????*s1,*one,*s2;
????int????????????i,num;
????
????s=sk_Student_new_null();
????snew=sk_Student_new(Student_cmp);
????s2=Student_Malloc();
????sk_Student_push(snew,s2);
????i=sk_Student_find(snew,s2);
????s1=Student_Malloc();
????sk_Student_push(s,s1);
????num=sk_Student_num(s);
????for(i=0;i<num;i++)
????{
????????one=sk_Student_value(s,i);
????????printf("student name :????%s\n",one->name);
????????printf("sutdent????age :????%d\n",one->age);
????????printf("student otherinfo :????%s\n\n\n",one->otherInfo);
????}
????sk_Student_pop_free(s,Student_Free);
????sk_Student_pop_free(snew,Student_Free);
????return?0;
}




?? ?這里要用到安裝目錄下的include 和 lib庫.所以我寫了一個(gè)Makefile文件來執(zhí)行它:

COMPILE := arm-unknown-linux-gnu-
CC := $(COMPILE)gcc
CFLAGS := -Wall -O2
CFLAGS += -I/home/lanpeng/arm-openssl/include/
LIBS := /home/lanpeng/arm-openssl/lib/libssl.a? /home/lanpeng/arm-openssl/lib/libcrypto.a
%.o: %.c
??? $(CC) $(CFLAGS) -c -o $@ $<

hello: zhan.o $(LIBS)
??? $(CC) $(CFLAGS) -o $@ zhan.o -L.$(LIBS)
clean:
??? rm -fr *.o hello

???? 在程序目錄下執(zhí)行make命令,編譯通過!
??? 注意:這里有一個(gè)的問題:就是在我的Makefile文件里L(fēng)IBS的定義。它定義了兩個(gè)靜態(tài)庫文件:libssl,libcrypto.這兩個(gè)庫文件的順序不可以顛倒。必須先加入libssl庫,再加入libcrypto庫.
??? 把hello文件下載到開發(fā)板里,執(zhí)行 ./hello,結(jié)果如下:

student name :? zcp
sutdent age? :? 0
student otherinfo :???? no info
恭喜了,開始你的嵌入式openssl開發(fā)之旅把!

總結(jié)

以上是生活随笔為你收集整理的ARM-Linux下交叉编译opessl-1.0.0的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日韩精品综合 | 永久免费在线看片 | 欧美特黄色片 | 成人一区二区精品 | 久久久久久久亚洲精品 | 91看片网 | 国产精品无码成人片 | 精品人妻人人做人人爽夜夜爽 | 在线观看黄色免费视频 | 激情中文字幕 | 亚洲第一福利网站 | 在线碰| 国产伦理久久精品久久久久 | 国产视频在线观看网站 | 中文字幕不卡在线播放 | 久久九九综合 | 黄色网在线免费观看 | 天天久久 | 国产美女喷水视频 | 18黄暴禁片在线观看 | 日本大尺度吃奶做爰视频 | 综合狠狠开心 | 精品久久久蜜桃 | 成人短视频在线播放 | 黄色aaa视频| 内射国产内射夫妻免费频道 | 99精品国产一区二区 | 香蕉尹人 | 亚洲欧美日韩专区 | 91se在线| 天天免费看av | 成人免费无码大片a毛片抽搐色欲 | 日本三级午夜理伦三级三 | 国产精品乱码一区二区三区 | 日韩av无码久久 | 亚洲一区精品视频在线观看 | 毛片基地站 | 思思精品视频 | 男人的天堂网在线 | 国产午夜免费视频 | 中文字幕精品三级久久久 | 国产成人精品一区二区三区四区 | av av在线 | 国产一区二区三区在线观看 | 国产精品久久久久久69 | 欧美人与性禽动交精品 | 日本高清在线一区 | 粉嫩av在线 | 色婷婷一区二区三区 | 在线观看免费av片 | 久久成人视屏 | 超碰2| 美女mm131爽爽爽免费动视频 | bt天堂新版中文在线地址 | 国产色片 | 白丝少妇| 日批动态图| 中文字幕在线观看线人 | 国产又黄又猛 | 激情欧美在线 | 欧美一区不卡 | 97在线观看免费视频 | 麻豆国产精品视频 | 91丝袜美女 | 精品丝袜一区 | 91一区二区三区 | 午夜影院在线观看 | 国模福利视频 | 搡老岳熟女国产熟妇 | 一区二区的视频 | 人妻无码一区二区三区免费 | 国产又粗又猛又黄视频 | 妻子的性幻想 | 中文文字幕文字幕高清 | 一本高清视频 | 好妞色妞国产在线视频 | 最近免费中文字幕中文高清百度 | 免费在线观看黄视频 | 色婷婷av一区二区三区四区 | 国产专区在线播放 | 国产专区自拍 | 中字幕一区二区三区乱码 | 亚洲国产综合在线 | 色综合天天综合网天天看片 | 有声小说 成人专区 | 蜜臀在线播放 | 女人的天堂网站 | 免费看黄色a级片 | 无码视频在线观看 | 免费成人美女女电影 | 欧美日韩成人免费观看 | 纯爱无遮挡h肉动漫在线播放 | 国内外成人在线视频 | 日本三级视频在线 | 欧美黄网站 | 91桃色视频在线观看 | 欧美成人一区二区在线 | 久久精品亚洲一区 | 免费中文视频 |