《嵌入式web伺服器 CGIC移植(二)》

2022-09-16 03:18:13 字數 1728 閱讀 1368

2. 配置編譯

2.1 配置編譯器

可以看到預設的編譯器是gcc。因為我是直接在虛擬機器上面做測試。因此直接用gcc就可以。

如果是要放在開發板上面,需進行對應的修改。

cc=arm-linux-gcc

ar=arm-linux-ar

ranlib=arm-linux-ranlib

cflags=-g -wall -static

cgictest.cgi: cgictest.o libcgic.a

$(cc) $(cflags) cgictest.o -o cgictest.cgi $

capture: capture.o libcgic.a

$(cc) $(cflags) capture.o -o capture $

2.2 編譯

make
編譯生成後在當前目錄生成:

libcgic.a:cgic庫

capture:除錯輔助程式

cgictest.cgi:測試程式

2.3 安裝cgic

cgic安裝路徑為

libcgic.a 安裝在/usr/local/lib

cgic.h 安裝在/usr/local/include

cgic庫安裝後就可以使用cgic程式設計了

2.4 cgic檔案移植

將capture和cgictest.cgi拷貝到開發板的/var/www/cgi-bin目錄

3. 執行測試cgi程式

3.1 本地測試

注意:前提要開啟boa服務

3.2 區域網測試

3. 問題解決

html網頁可以執行,cgi程式執行報錯

boa伺服器報錯:cgi_header: unable to find lflf

客戶端瀏覽器報錯:502 bad gateway

the cgi was not cgi/1.1 compliant.

解決方法:靜態編譯cgi程式

arm-linux-gcc -o hello.cgi hello.c -static

或者是把cgi-bin這個資料夾和對應要執行的cgi應用程式chmod 777

嵌入式Web伺服器移植

或者 最新發行版本 0.94.13 解壓 tar xzf boa 0.94.13.tar.gz 直接執行src configure檔案 a 修改 cc gcc 為 cc usr local arm 2.95.3 bin arm linux gcc b 修改 cpp gcc e 為 cpp usr l...

嵌入式Web伺服器移植

文章一僅供個人學習之用,請勿用於他途。n printf n printf n printf n printf n exit 0 交叉編譯生成helloworld.cgi arm softfloat linux gnu gcc o helloworld.cgi helloworld.c 將hellow...

嵌入式Web伺服器Boa的移植及其應用

隨著嵌入式技術的發展和高速寬頻網路的普及,利用網路實現遠端監控已為人們廣泛接受,嵌入式網路監控技術正是在此條件下逐步發展成熟起來的.1 嵌入式web 伺服器boa 的特點 boa 是一款單任務的http 伺服器,與其他傳統的web 伺服器不同的是當有連線請求到來時,它並不為每個連線單獨建立程序,也不...