acl 編譯
提示:文章寫完後,目錄可以自動生成,如何生成可參考右邊的幫助文件
前言
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 編譯
編譯報錯:
缺少對應的兩個庫,需要打來編譯的外部連結庫即可。
相關文章
- Java編譯與反編譯Java編譯
- ACL
- ACL主席:ACL不是AI會議AI
- 編譯編譯
- hadoop編譯—+2.x編譯Hadoop編譯
- gcc 編譯器與 clang 編譯器GC編譯
- 編譯器的編譯基本過程編譯
- 一張圖解析 編譯器編譯流程圖解編譯
- ubuntu下編譯交叉編譯工具鏈Ubuntu編譯
- [譯]iOS編譯器iOS編譯
- 程式碼線上編譯器(上)- 編輯及編譯編譯
- SD & ACL
- 開源編譯工具和編譯軟體編譯
- Make編譯之編譯32bit ffmpeg編譯
- N1064編譯鏈編譯編譯
- webrtc編譯Web編譯
- 編譯VIM編譯
- 交叉編譯編譯
- gcc編譯GC編譯
- srilm編譯編譯
- 編譯版本編譯
- 編譯 zsh編譯
- 編譯 ncurses編譯
- 編譯宏編譯
- 編譯 git編譯Git
- 編譯原理編譯原理
- GCC編譯過程(預處理->編譯->彙編->連結)GC編譯
- Rust 交叉編譯與條件編譯總結Rust編譯
- 交叉編譯-Mac環境使用NDK編譯FFmpeg編譯Mac
- 編譯器的自展和自舉、交叉編譯編譯
- Android反編譯:反編譯工具和方法Android編譯
- Windows下編譯Caffe並編譯Matlab介面Windows編譯Matlab
- apache動態編譯/靜態編譯區別Apache編譯
- cmake編譯指定自己編譯的庫路徑編譯
- oracle的ACLOracle
- 「譯」懂點那啥編譯編譯
- Go編譯器簡介【譯】Go編譯
- 淺談彙編器、編譯器和直譯器編譯