交叉编译器环境配置与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时,有时会遇到权限问题,可以修改对应文件的所有者权限即可。

目录
相关文章
|
8月前
|
存储 人工智能 容灾
阿里云服务器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实例,帮助用户根据自身需求合理选择最适合的实例规格和配置。
|
7月前
|
弹性计算 ice
阿里云4核8G云服务器配置价格:热门ECS实例及CPU处理器型号说明
阿里云2025年4核8G服务器配置价格汇总,涵盖经济型e实例、计算型c9i等热门ECS实例,CPU含Intel Xeon及AMD EPYC系列,月费159元起,年付低至1578元,按小时计费0.45元起,实际购买享折扣优惠。
2851 1
|
8月前
|
存储 运维 安全
阿里云服务器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配置的实例规格、适用场景及选择策略,以供参考。
|
8月前
|
机器学习/深度学习 存储 前端开发
阿里云服务器8核16G配置详解:热门实例规格、价格与选购指南
阿里云服务器8核16G配置,这样的配置能够满足大多数中小型网站、Web前端服务器以及计算密集型任务的需求。根据最新的收费标准及活动价格来看,云服务器8核16G配置收费标准最低的是经济型e实例,按量收费标准0.9元/小时,如果是需要年付的话,目前选择计算型c8y实例的活动价格为为2861.27元/1年起。本文为大家介绍8核16G配置的几款主要热门实例规格各自的性能与收费标准价格情况,以供选购参考。
|
8月前
|
存储 弹性计算 固态存储
阿里云服务器收费价格参考,2核16G、4核32G、8核64G配置收费标准
阿里云服务器2核16G、4核32G、8核64G配置最新租用价格更新,2核16G配置按量收费最低收费标准为0.596元/小时,按月租用标准收费标准为286.2元/1月。4核32G配置的阿里云服务器按量收费标准最低为1.192元/小时。8核64G配置的阿里云服务器按量收费标准最低为2.385元/小时。云服务器实例规格的地域和实例规格不同,收费标准不一样,下面是2025年阿里云服务器2核16G、4核32G、8核64G配置的最新租用收费标准。
2005 55
|
7月前
|
弹性计算 定位技术 数据中心
阿里云服务器配置选择方法:付费类型、地域及CPU内存配置全解析
阿里云服务器怎么选?2025最新指南:就近选择地域,降低延迟;长期使用选包年包月,短期灵活选按量付费;企业选2核4G5M仅199元/年,个人选2核2G3M低至99元/年,高性价比爆款推荐,轻松上云。
877 11
|
7月前
|
存储 弹性计算 网络协议
超详细的阿里云服务器购买流程,ECS自定义购买配置教程
本文详细图解阿里云ECS服务器自定义购买全流程,涵盖付费模式、地域选择、网络配置、实例规格、镜像、存储、安全组及登录设置等核心步骤,助您轻松掌握专业级云服务器搭建方法。
|
7月前
|
存储 弹性计算 监控
阿里云渠道商:如何挑选阿里云服务器配置?
本文详解通用型、计算型、内存型等实例适用场景,结合性能评估与成本优化策略,助力用户按需选择。以日均1万访问企业网站为例,2核4G+3M带宽月费约200元,性价比高。合理配置更省钱。