工作需要,移植web服务器到摄像头中,查找资料,借鉴了几位前辈的文章自己弄了一下,还挺顺利的呦~

系统:centos 6.4 64bit

工具:arm-hisiv100nptl-linux-gcc

1、交叉编译

1)从www.boa.org下载Boa源码,版本0.94.13;

2)解压进入源码目录的src/
# tar xzf boa-0.94.13.tar.gz
# cd boa-0.94.13/src
3)生成Makefile文件
# ./configure
4)修改Makefile文件:CC=gcc改成CC = arm-hisiv100nptl-linux-gcc,再找到CPP = gcc –E,
将其改成CPP = arm-hisiv100nptl-linux-gcc –E,保存退出。
5)运行make进行编译,在src/目录下,得到可执行程序boa

2、编译中遇到的错误
# make
gcc -g -O2 -pipe -Wall -I. -c -o util.o util.c
util.c:100:1: error: pasting "t" and "->" does not give a valid preprocessing token
make: *** [util.o] Error 1

解决方法:
vi src/compat.h

#define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff
改成
#define TIMEZONE_OFFSET(foo) (foo)->tm_gmtoff
保存退出,然后make clean、make

3、在目标版上运行boa

上传boa-0.94.13/src/下的boa到目标版;

上传boa-0.94.13/下的boa.conf(先按需求设置完)到目标版/etc/boa/下;

上传boa-0.94.13/下的mime.types到目标板/etc/下;

在目标版上创建目录/var/www(配置默认DocumentRoot是这个,可以自己改),里面放供下载的文件;

运行./boa;

(此处报错boa.c:228 - icky Linux kernel bug!: :

解决办法: 修改源码中的src/boa.c

注释掉下面语句:

  if(setuid(0) != -1) {

  DIE(”icky Linux kernel bug!”);

  }

重新make,上传boa)

转载于:https://blog.51cto.com/jiangfy/1395445

arm-hisiv100nptl-linux-gcc编译boa和移植相关推荐

  1. Linux gcc编译过程及动态/静态库制作

    Linux库概念及如何制作静态库和动态库 1: gcc编译的过程 2: 分文件编程 3: 库(静态库和动态库) 3.1: 库的基本介绍 3.2: 静态和动态库的区别 3.3: 库的制作及使用 3.3. ...

  2. Linux gcc编译c/c++基本过程

    Linux系统下开发c++程序,那么gcc编译器就是我们绕不过去的一道坎.gcc是GNU出品的一款可以在多种硬件平台上编译处可执行程序的超级编译器,其执行效率比普通的编译器要高出20%~30%左右,而 ...

  3. linux gcc编译C程序 分享

    一个c语言程序从源文件到生成可执行文件,编译器需要共经历4个步骤: 1) 预处理:把c文件中预处理命令扫描处理完毕,即对源代码文件中的文件包含(#include).预编译语句(如宏定义#define等 ...

  4. linux gcc编译undefined reference to `stricmp'问题

    最近gcc编译遇到这样的问题:undefined reference to `stricmp'. 查了下,stricmp是Windows特有函数. 解决方法: stricmp是Microsoft's ...

  5. linux gcc编译常见问题,常见gcc编译警告整理以及解决方法 - 常见gcc编译警告整理以及解决方法...

    三.常见gcc编译警告整理以及解决方法 1.warning: no newline at end of file 在文件最后一行加上回车键 解释:在<Rationale for the C99 ...

  6. linux gcc 编译找不到头文件,找不到库

    找不到头文件 解决方式 (头文件均为编译时刻使用) 1.把头文件路径写成绝对路径,把路径写全,如 (相对路径也行) #include "/usr/include/stdio.h" ...

  7. linux gcc编译c文件头文件,使用GCC编译器编译C语言

    GCC编译C源代码有四个步骤:预处理-->编译-->汇编-->链接. 可以利用GCC的参数来控制执行的过程,这样就可以更深入的了解编译C程序的过程. 下面将通过对一个程序的编译来演示 ...

  8. linux gcc编译错误:statically linked applications requires at runtime the shared libraries

    statically linked applications requires at runtime the shared libraries from the glibc version used ...

  9. arm linux gcc 编译,Linux arm-linux-gcc交叉编译环境配置

    Linux下的arm-linux-gcc交叉编译环境安装 安装arm-linux-gcc (1) 打开终端,使用sudo命令进入从超级管理员: sudo su 输入超级管理员密码. (2) 使用cd命 ...

最新文章

  1. 微信公众号开发本地环境开发_如何在5分钟内使HTTPS在本地开发环境上工作
  2. mongodb基础应用
  3. java面向对象电子科大版答案_电子科大17秋《面向对象程序设计》在线作业1
  4. linux mysql 1045 错误_Linux 下,mysql数据库报无法登陆错误:ERROR 1045 (28000): Access denied for use...
  5. eclipse color theme 主题颜色
  6. python的scrapy爬虫可以将爬去的数据放入数据库吗_Python基于Scrapy的爬虫 数据采集(写入数据库)...
  7. boost::gregorian模块实现计算今年的元旦直到下一个元旦的日子的测试程序
  8. 解决docker中运行scrapy使用chrome selenium报错InvalidSessionIdException: Message: invalid session id
  9. 【Elasticsearch】Elasticsearch日志场景最佳实践
  10. 矢量合成和分解的法则_专题06 共点力的合成与分解
  11. 数据结构和算法———P2 算法概述
  12. 论计算机网络的发展及运用,试论计算机网络发展及其应用研究
  13. python中dir函数的作用_【Python】Python内置函数dir详解
  14. firemonkey mysql_FireMonkey下画图线条的大小
  15. arduino 土壤温湿度传感器_arduino测量土壤湿度自动浇水提醒 - 全文
  16. 一次失败的华为校园大使面试经历
  17. 高德地图初步使用-多点路线连接
  18. 使用Stream流时报java.lang.IllegalStateException: stream has already been operated upon or closed错误
  19. 计算机网络ping超时,ping请求超时怎么回事?ping请求超时的解决方法
  20. 函数(python学习)

热门文章

  1. 请编写一个程序,用于统计字符串中每个字母的出现次数(字母忽略大小写),统计出结果后,请按照{'a':3,'b':2}的格式输出。
  2. 不能启动u盘 uefi_不知道怎么进入主板设置U盘启动,试试这些方式
  3. java矩阵类_151-矩阵类
  4. python在线作业_南开大学20春学期《Python编程基础》在线作业参考答案
  5. 1107: 回文数猜想(函数专题)
  6. python七段数码管倒计时_python实现七段数码管和倒计时效果
  7. CSS中div覆盖另一个div
  8. codeforces D. Design Tutorial: Inverse the Problem
  9. (四)Linux内核模块化编程
  10. ip变更会影响账号登陆吗_【教程】PUBG账号被盗导致封禁申诉解封教程