Linux开发项目(二)

CGI+SQLite环境配置

一、CGI配置

1. 下载源码

网站:https://github.com/boutell/cgic

unzip -n cgi-master.zip -d [指定目录]

2. 编译运行

来到解压目录下

  1. 修改Makefile文件

CC=arm-linux-gnueabi-gcc

AR=arm-linux-gnueabi-ar

RANLIB=arm-linux-gnueabi-ranlib

CFLAGS=-g -Wall -static

cgictest.cgi: cgictest.o libcgic.a
$(CC) $(CFLAGS) cgictest.o -o cgictest.cgi ${LIBS}

capture: capture.o libcgic.a
$(CC) $(CFLAGS) capture.o -o capture ${LIBS}

  1. 编译并安装
make & make install
  1. 测试运行

将capture和cgictest.cgi文件拷贝到相应的/cgi-bin目录
测试如下:在这里插入图片描述

3. 编译程序

  1. HTML网页制作+CGI程序编写
  2. 将CGIC库的cgic.c、cgic.h文件拷贝到编译目录,进行如下操作
arm-linux-gnueabi-gcc -o [自定义].cgi [编写的CGI程序].c cgic.c -static
arm-linux-gnueabi-strip  [自定义].cgi
  1. 将编译后的cgi文件拷贝到相应的/cgi-bin目录
  2. 将HTML文件拷贝到相应的/www目录

二、SQLite配置

1. 下载源码

官方网站:https://www.sqlite.org/download.html

tar -xvzf sqlite-autoconf-3350300.tar.gz -C [指定目录]

2. 配置与编译安装

建立目录:

mkdir -p /usr/sqlite3-arm

进入解压目录中,执行

./configure --host=arm-linux --prefix=/usr/sqlite3-arm

host指定交叉编译工具,prefix指定安装目录

编译并安装

make & make install

如果出现错误,再执行一次操作
将sqlite3-arm目录下的bin目录下的sqlite3程序拷贝到/usr/bin目录
将sqlite3-arm目录下的lib目录下的所有文件拷贝到/usr/lib目录

测试

sqlite3 -version

安装成功会出现版本信息

三、整体程序编译

需要编写HTML,CGI程序,并且在CGI程序使用到SQLite语句

编译过程可选择动态编译和静态编译,但使用动态编译之后BOA服务器会出现502 Bad Gateway,网页无法正常显示

编译程序:

arm-linux-gnueabi-gcc -o [自定义].cgi [编写的C程序].c sqlite3.c cgic.c -static -lsqlite3 -lpthread -ldl

此种编译需要将sqlite3.c和cgic.c文件拷贝至编译所在目录

arm-linux-gnueabi-gcc -o [自定义].cgi [编写的C程序].c -I /usr/include -L /usr/lib -static -lsqlite3 -lpthread -ldl

-I制定优先搜索头文件路径,-L制定编译的时候,优先搜索库的路径

其中-static实现静态编译,若在编译过程出现头文件或库文件缺失,则需要完成相应文件的移植。

本文参考了以下文章,配置过程中若有其他错误,也可作参考:

  1. https://blog.csdn.net/pugu12/article/details/47733619
  2. https://blog.csdn.net/u011823494/article/details/71651272
  3. https://blog.51cto.com/9291927/1829971
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值