Mac下使用arm-linux-gnueabihf交叉编译openssl方法

本文介绍如何在ARM架构的Linux系统上从源码编译OpenSSL。具体步骤包括:下载OpenSSL源码,使用Configure脚本配置编译参数以适配ARM架构,并进行编译生成库文件。

1、先下载openssl源码https://github.com/openssl/openssl/archive/master.zip

2、解压缩后进入源码目录执行

 

./Configure linux-armv4 no-asm shared --prefix=/Volumes/work/opt/openssl/

生成Makefile文件

3、编译源码

 

make CROSS_COMPILE=arm-linux-gnueabihf-

 

 

 

 

 

 

### 使用 `arm-linux-gnueabihf-gcc` 交叉编译 libwebsockets 为了使用 `arm-linux-gnueabihf-gcc` 对 `libwebsockets` 进行交叉编译,需要遵循一系列配置和命令来确保整个过程顺利进行。 #### 准备工作环境 首先确认已经安装并设置了用于 ARM 架构的工具链。对于本案例中的 `arm-linux-gnueabihf-gcc` 工具链来说,这通常意味着已经在主机环境中正确安装了该编译器及其关联组件[^3]。 #### 下载源码包 从官方仓库或其他可信资源处获取最新版或所需特定版本的 `libwebsockets` 源代码。考虑到网络速度等因素,在国内可以从 gitee 获取更快的速度[^4]。 #### 创建构建目录 建议在一个独立于源代码树的新建子目录内完成所有的编译操作,比如命名为 `build` 或者其他名称。这样做不仅有助于保持项目结构清晰整洁,而且便于后续清理重置而不影响原始文件。 ```bash mkdir build && cd build ``` #### 设置 CMake 变量 由于目标平台不同于当前开发机器架构,因此必须告知 CMake 关于所使用交叉编译工具的信息。具体做法是在调用 cmake 命令时传递 `-DCMAKE_TOOLCHAIN_FILE=` 参数指向一个合适的 toolchain 文件;或者直接指定编译器路径以及其它必要的参数: ```bash cmake .. \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=/path/to/installation/directory \ -DCMAKE_C_COMPILER=/opt/gcc-arm-linux-gnueabihf-8.3.0/bin/arm-linux-gnueabihf-gcc \ -DLWS_WITHOUT_EXTENSIONS=ON \ -DLWS_OPENSSL_LIBRARIES="/path/to/your/cross-compiled/openssl/libcrypto.a;/path/to/your/cross-compiled/openssl/libssl.a" ``` 这里假设 OpenSSL 库已经被提前交叉编译过,并且其静态链接库位于 `/path/to/your/cross-compiled/openssl/` 路径下。如果打算动态加载这些依赖项,则应相应调整上述指令以适应实际情况。 #### 执行实际编译流程 一旦完成了前面提到的各项准备工作之后,就可以正式开始编译过程了。一般情况下只需简单运行 make 即可启动多线程模式下的快速编译作业: ```bash make -j$(nproc) ``` 此命令会利用尽可能多的核心来进行并发处理从而加快整体进度。待所有任务结束后再继续下一步骤。 #### 安装生成物至指定位置 最后一步就是把刚刚制作好的二进制产物部署到之前定义的目标地址去: ```bash make install ``` 至此就完成了基于 `arm-linux-gnueabihf-gcc` 的一次完整的 `libwebsockets` 交叉编译实例。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值