交叉编译器环境配置与boa嵌入式web服务器移植问题

简介: 交叉编译器环境配置与boa嵌入式web服务器移植问题

第一次见这种形式的sdk安装脚本:

fsl-imx-x11-glibc-x86_64-meta-toolchain-qt5-cortexa7hf-neon-toolchain-4.1.15-2.1.0.sh

不过确实挺方便,把压缩包和脚本组合在一起,方便使用。这个sdk安装过之后,交叉编译时遇到一些问题,这里记录一下。

这个也可以安装在wsl里面,这样可以不用虚拟机了。


安装配置交叉编译环境


他这个编译器安装比较简单,直接运行这个脚本即可:


默认安装到opt下面,我这个是安装过一次了,所以会提示是否覆盖。

sh fsl-imx-x11-glibc-x86_64-meta-toolchain-qt5-cortexa7hf-neon-toolchain-4.1.15-2.1.0.sh
Freescale i.MX Release Distro SDK installer version 4.1.15-2.1.0
================================================================
Enter target directory for SDK (default: /opt/fsl-imx-x11/4.1.15-2.1.0):
The directory "/opt/fsl-imx-x11/4.1.15-2.1.0" already contains a SDK for this architecture.
If you continue, existing files will be overwritten! Proceed[y/N]? y
Extracting SDK.........................................done
Setting it up...done
SDK has been successfully set up and is ready to be used.
Each time you wish to use the SDK in a new shell session, you need to source the environment setup script e.g.
 $ . /opt/fsl-imx-x11/4.1.15-2.1.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi


这样就安装成功了,最后提示的那一句:

. /opt/fsl-imx-x11/4.1.15-2.1.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi


是配置环境变量用的,记得执行一下,然后迅速码出一个hello world来测试下交叉编译器是否能够正常使用:

#include <stdio.h>

int main(int argc, char **argv)
{
        printf("hello world\n");
        return 0;
}

编译:
arm-poky-linux-gnueabi-gcc main.c
main.c:1:19: fatal error: stdio.h: No such file or directory
compilation terminated.


报错了!找不到stdio.h头文件,这可是C语言的基础头文件!提示找不到肯定还是环境变量的问题,这是需要指定sysroot的路径,如下:

编译命令加上sysroot
arm-poky-linux-gnueabi-gcc main.c  --sysroot=/opt/fsl-imx-x11/4.1.15-2.1.0/sysroots/cortexa7hf-neon-poky-linux-gnueabi/

编译错误:
In file included from /opt/fsl-imx-x11/4.1.15-2.1.0/sysroots/cortexa7hf-neon-poky-linux-gnueabi/usr/include/features.h:392:0,
                 from /opt/fsl-imx-x11/4.1.15-2.1.0/sysroots/cortexa7hf-neon-poky-linux-gnueabi/usr/include/stdio.h:27,
                 from main.c:1:
/opt/fsl-imx-x11/4.1.15-2.1.0/sysroots/cortexa7hf-neon-poky-linux-gnueabi/usr/include/gnu/stubs.h:7:29: fatal error: gnu/stubs-soft.h: No such file or directory
compilation terminated.


还是报错,这个错误又不一样了,说明还是有问题,经过网上搜索发现还需要加编译参数,如下:

编译命令:
arm-poky-linux-gnueabi-gcc main.c  --sysroot=/opt/fsl-imx-x11/4.1.15-2.1.0/sysroots/cortexa7hf-neon-poky-linux-gnueabi/ -mfloat-abi=hard -mfpu=neon

这次没报错,ls查看一下,熟悉的a.out出来了
a.out main.c


到这里编译环境算是搞好了。


交叉编译boa


接下来编译boa服务器,交叉编译boa服务器,可以直接修改src/Makefile,修改内容如下:

LDFLAGS :=  -g  -march=armv7-a -mthumb-interwork -mfloat-abi=hard -mfpu=neon -mtune=cortex-a7 --sysroot=/opt/fsl-imx-x11/4.1.15-2.1.0/sysroots/cortexa7hf-neon-poky-linux-gnueabi/

LIBS =  
CFLAGS = -g -O2 -pipe -Wall -I. -march=armv7-a -mthumb-interwork -mfloat-abi=hard -mfpu=neon -mtune=cortex-a7 --sysroot=/opt/fsl-imx-x11/4.1.15-2.1.0/sysroots/cortexa7hf-neon-poky-linux-gnueabi/


记得这两行都需要修改,否则还是会报错:


然后就可以编译了,编译过程中如果提示bsion相关的错误,需要安装bsion:

sudo apt-get install bison


如果出现lex 的错误,需要安装fles

sudo apt-get install flex


更多错误参考这里吧:https://blog.csdn.net/zhangxuechao_/article/details/82821739


这样boa就可以编译完成了;


配置boa


如下图是我整理的boa涉及到的文件,其中www用于存放网页文件与cgi文件,boa是可执行文件,boa.conf是boa的配置文件,这个文件需要放在/etc/boa/下面,mime.types放置的路径可以在boa.conf里配置,www的路径也可以在boa.conf里配置。


这里的install.sh是写的一个简单的安装脚本:

#!/bin/sh
mkdir /var/log/
touch /var/log/boa
mkdir /usr/local/boa/
mkdir /etc/boa
cp boa /usr/local/boa/
cp mime.types /usr/local/boa/
cp boa.conf /etc/boa/
cp www /usr/local/boa/ -fr
echo "done."


启动boa时,有时会遇到权限问题,可以修改对应文件的所有者权限即可。

目录
相关文章
|
1月前
|
存储 人工智能 容灾
阿里云服务器2核8G、4核16G、8核32G配置热门实例性能对比与场景化选型指南
2核8G/4核16G/8核32G配置的阿里云服务器在阿里云活动中目前有经济型e、通用算力型u1、通用型g7、通用型g8y和通用型g9i五种实例可选,目前2核8G配置选择u1实例活动价格652.32元1年起,4核16G月付选择经济型e实例最低89元1个月,8核32G配置160元1个月起,本文将为大家解析经济型e、通用算力型u1、通用型g7及通用型g8y实例,帮助用户根据自身需求合理选择最适合的实例规格和配置。
|
1月前
|
存储 运维 安全
阿里云服务器2核4G与4核8G配置解析:实例规格、价格及选择指南
阿里云服务器2核4G和4核8G配置凭借其均衡的性能与性价比,成为中小企业及开发者群体的热门选择。通用算力型u1实例2核4G5M带宽80G ESSD Entry云盘特惠价199元1年,个人用户最低531.79元1年,4核8G配置价格最低的是通用算力型u1实例,活动价格为955.58元1年起,除此之外,还有计算型c7、c9i、c8y等计算型实例有2核4G与4核8G配置可选。具体配置还需要看想要购买的云服务器实例规格和配置及带宽大小。本文将结合2025年最新活动价格,深度解析阿里云服务器2核4G与4核8G配置的实例规格、适用场景及选择策略,以供参考。
|
1月前
|
机器学习/深度学习 存储 前端开发
阿里云服务器8核16G配置详解:热门实例规格、价格与选购指南
阿里云服务器8核16G配置,这样的配置能够满足大多数中小型网站、Web前端服务器以及计算密集型任务的需求。根据最新的收费标准及活动价格来看,云服务器8核16G配置收费标准最低的是经济型e实例,按量收费标准0.9元/小时,如果是需要年付的话,目前选择计算型c8y实例的活动价格为为2861.27元/1年起。本文为大家介绍8核16G配置的几款主要热门实例规格各自的性能与收费标准价格情况,以供选购参考。
|
1月前
|
存储 弹性计算 固态存储
如何给轻量服务器升级套餐配置?附上云服务器配置攻略
本文介绍了阿里云轻量应用服务器升级配置的流程及注意事项,并提供云服务器选型攻略。内容涵盖升级前的数据备份、操作步骤、系统盘扩容及机房限制等,同时结合业务类型、访问量、带宽、存储等因素,指导用户合理选择ECS实例规格与配置,助您高效稳定部署应用。
|
2月前
|
存储 机器学习/深度学习 弹性计算
阿里云服务器ECS计算型c9i规格族性能与特点、配置性能参数表
阿里云ECS计算型c9i实例基于Intel® Xeon® Granite Rapids处理器,主频3.2GHz,全核睿频3.6GHz,提供稳定高性能计算能力。支持NVMe协议、vTPM安全加密,适用于机器学习、大数据分析、高性能计算等场景,具备高安全、低延迟、强扩展等优势。
|
17天前
|
弹性计算 Windows
阿里云香港服务器收费价格:香港ECS和轻量应用服务器配置介绍
2025年阿里云香港服务器优惠汇总:ECS 2核4G+5M带宽仅199元/年;轻量服务器30M带宽24元/月起,200M峰值带宽25元/月起。轻量性价比高,适合个人及中小企业建站、跨境业务,具体配置价格详见官方活动页。
304 1
|
1月前
|
Ubuntu 安全 应用服务中间件
详细指南:配置Nginx服务器在Ubuntu平台上
以上步骤涵盖了基本流程:从软件包管理器获取 Ngnix, 设置系统服务, 调整UFW规则, 创建并激活服务器块(也称作虚拟主机), 并进行了初步优化与加固措施。这些操作都是建立在命令行界面上,并假设用户具有必要权限(通常是root用户)来执行这些命令。每个操作都有其特定原因:例如,设置开机启动确保了即使重启后也能自动运行 Ngnix;而编辑server block则定义了如何处理进入特定域名请求等等。
200 18
|
1月前
|
Ubuntu 安全 应用服务中间件
详细指南:配置Nginx服务器在Ubuntu平台上
以上步骤涵盖了基本流程:从软件包管理器获取 Ngnix, 设置系统服务, 调整UFW规则, 创建并激活服务器块(也称作虚拟主机), 并进行了初步优化与加固措施。这些操作都是建立在命令行界面上,并假设用户具有必要权限(通常是root用户)来执行这些命令。每个操作都有其特定原因:例如,设置开机启动确保了即使重启后也能自动运行 Ngnix;而编辑server block则定义了如何处理进入特定域名请求等等。
210 17
|
27天前
|
存储 弹性计算 固态存储
阿里云服务器租用价格参考:最新收费标准与不同实例热门配置活动价格
阿里云服务器租用价格参考:配置最低的1核0.5G云服务器,按量付费价格0.063元/小时,按月租用价格为18元/1月,爆款配置的活动价格目前直降,2核2G配置轻量应用服务器抢购价为38元一年;经济型e实例2核2G3M特惠价99元1年;通用算力型u1实例2核4G5M带宽特惠价199元1年;2核8G配置的活动价格最低为一年652.32元;4核16G配置的活动价格最低为1196.64元;8核16G配置的最低一年租用价格为3815.03元。以下是2025年阿里云服务器最新收费标准与热门配置活动价格的详细内容。
|
28天前
|
存储 缓存 数据挖掘
阿里云轻量应用服务器“CPU优化型”配置介绍、费用价格说明
阿里云轻量应用服务器推出CPU优化型,提供更强计算性能,2核4GB起,最高16核64GB,全系支持200Mbps带宽。适用于企业级应用、数据库、游戏服务器等高算力场景,保障稳定高效运行。
206 1

热门文章

最新文章