acl 編譯

Hmantic發表於2020-12-12

提示:文章寫完後,目錄可以自動生成,如何生成可參考右邊的幫助文件

 

文章目錄

 


前言

C/C++ 程式雖然執行效率高,但程式設計師在開發 WEB 應用時卻因為沒有好的 WEB 開發框架而導致開發效率低,所以 C/C++ 一般被用在開發執行效率高的後臺伺服器程式,目前有了跨平臺網路通訊與伺服器框架(acl庫)後這一情況得到很大改觀,在 acl 庫中提供了類似於 JAVA HttpServlet 的開發介面,大大提高了 C/C++ 程式設計師開發 WEB 應用的效率,acl 庫中有完整的伺服器開發框架,更使得 C/C++ 程式設計師可以快速地寫出高效的 WEB 伺服器程式。本例子為一個簡單的 WEB 伺服器程式,其在 acl 庫中的位置:acl\lib_acl_cpp\samples\master_http_threads
acl 庫下載:http://sourceforge.net/projects/acl/
acl 庫的 github:https://github.com/zhengshuxin/acl
更多技術文章:http://zsxxsz.iteye.com
QQ 群:242722074


提示:以下是本篇文章正文內容,下面案例可供參考

一、acl?

acl一個跨平臺網路通訊與伺服器框架(acl庫)。

二、編譯

1.環境要求(本文使用在Ubuntu 16.04下使用)

程式碼如下(示例):

依賴庫:libiconv 以及libz 庫。

libiconv庫連結: http://ftp.gnu.org/pub/gnu/libiconv/ 使用 libiconv-1.14.tar.gz

zlib庫連結: https://github.com/madler/zlib

/configure  make make install 即可。

 

環境 Ubuntu14.04 64位 編譯 libiconv-1.14 出錯

錯誤現象:

In file included from progname.c:26:0:

./stdio.h:1010:1: error: ‘gets’ undeclared here (not in a function)
 _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
 ^
make[2]: *** [progname.o] 錯誤 1
make[2]:正在離開目錄 `/home/bupt/miao/box/soft/libiconv-1.14/srclib'
make[1]: *** [all] 錯誤 2
make[1]:正在離開目錄 `/home/bupt/miao/box/soft/libiconv-1.14/srclib'

make: *** [all] 錯誤 2

二、解決方法

 

在libiconv-1.14/srclib/stdio.in.h 中把

_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");

替換成

#if defined(__GLIBC__) && !defined(__UCLIBC__) && !__GLIBC_PREREQ(2, 16)
_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
#endif

 

重新編譯libiconv就OK了.

 

2.acl-master 編譯

編譯報錯:

缺少對應的兩個庫,需要打來編譯的外部連結庫即可。

 

相關文章