arm-hisiv100nptl-linux-gcc编译boa和移植
工作需要,移植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和移植相关推荐
- Linux gcc编译过程及动态/静态库制作
Linux库概念及如何制作静态库和动态库 1: gcc编译的过程 2: 分文件编程 3: 库(静态库和动态库) 3.1: 库的基本介绍 3.2: 静态和动态库的区别 3.3: 库的制作及使用 3.3. ...
- Linux gcc编译c/c++基本过程
Linux系统下开发c++程序,那么gcc编译器就是我们绕不过去的一道坎.gcc是GNU出品的一款可以在多种硬件平台上编译处可执行程序的超级编译器,其执行效率比普通的编译器要高出20%~30%左右,而 ...
- linux gcc编译C程序 分享
一个c语言程序从源文件到生成可执行文件,编译器需要共经历4个步骤: 1) 预处理:把c文件中预处理命令扫描处理完毕,即对源代码文件中的文件包含(#include).预编译语句(如宏定义#define等 ...
- linux gcc编译undefined reference to `stricmp'问题
最近gcc编译遇到这样的问题:undefined reference to `stricmp'. 查了下,stricmp是Windows特有函数. 解决方法: stricmp是Microsoft's ...
- linux gcc编译常见问题,常见gcc编译警告整理以及解决方法 - 常见gcc编译警告整理以及解决方法...
三.常见gcc编译警告整理以及解决方法 1.warning: no newline at end of file 在文件最后一行加上回车键 解释:在<Rationale for the C99 ...
- linux gcc 编译找不到头文件,找不到库
找不到头文件 解决方式 (头文件均为编译时刻使用) 1.把头文件路径写成绝对路径,把路径写全,如 (相对路径也行) #include "/usr/include/stdio.h" ...
- linux gcc编译c文件头文件,使用GCC编译器编译C语言
GCC编译C源代码有四个步骤:预处理-->编译-->汇编-->链接. 可以利用GCC的参数来控制执行的过程,这样就可以更深入的了解编译C程序的过程. 下面将通过对一个程序的编译来演示 ...
- 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 ...
- arm linux gcc 编译,Linux arm-linux-gcc交叉编译环境配置
Linux下的arm-linux-gcc交叉编译环境安装 安装arm-linux-gcc (1) 打开终端,使用sudo命令进入从超级管理员: sudo su 输入超级管理员密码. (2) 使用cd命 ...
最新文章
- 微信公众号开发本地环境开发_如何在5分钟内使HTTPS在本地开发环境上工作
- mongodb基础应用
- java面向对象电子科大版答案_电子科大17秋《面向对象程序设计》在线作业1
- linux mysql 1045 错误_Linux 下,mysql数据库报无法登陆错误:ERROR 1045 (28000): Access denied for use...
- eclipse color theme 主题颜色
- python的scrapy爬虫可以将爬去的数据放入数据库吗_Python基于Scrapy的爬虫 数据采集(写入数据库)...
- boost::gregorian模块实现计算今年的元旦直到下一个元旦的日子的测试程序
- 解决docker中运行scrapy使用chrome selenium报错InvalidSessionIdException: Message: invalid session id
- 【Elasticsearch】Elasticsearch日志场景最佳实践
- 矢量合成和分解的法则_专题06 共点力的合成与分解
- 数据结构和算法———P2 算法概述
- 论计算机网络的发展及运用,试论计算机网络发展及其应用研究
- python中dir函数的作用_【Python】Python内置函数dir详解
- firemonkey mysql_FireMonkey下画图线条的大小
- arduino 土壤温湿度传感器_arduino测量土壤湿度自动浇水提醒 - 全文
- 一次失败的华为校园大使面试经历
- 高德地图初步使用-多点路线连接
- 使用Stream流时报java.lang.IllegalStateException: stream has already been operated upon or closed错误
- 计算机网络ping超时,ping请求超时怎么回事?ping请求超时的解决方法
- 函数(python学习)
热门文章
- 请编写一个程序,用于统计字符串中每个字母的出现次数(字母忽略大小写),统计出结果后,请按照{'a':3,'b':2}的格式输出。
- 不能启动u盘 uefi_不知道怎么进入主板设置U盘启动,试试这些方式
- java矩阵类_151-矩阵类
- python在线作业_南开大学20春学期《Python编程基础》在线作业参考答案
- 1107: 回文数猜想(函数专题)
- python七段数码管倒计时_python实现七段数码管和倒计时效果
- CSS中div覆盖另一个div
- codeforces D. Design Tutorial: Inverse the Problem
- (四)Linux内核模块化编程
- ip变更会影响账号登陆吗_【教程】PUBG账号被盗导致封禁申诉解封教程