编译安装fastcgi++库

fastcgipp官方网站下载最新的fastcgi++-2.0alpha-81f89e4e.tar.bz2,

  1. tar -xjvf fastcgi++-2.0alpha-81f89e4e.tar.bz2
  2. cd fastcgi++-2.0alpha-81f89e4e
  3. ./configure
  4. ./make
  5. ./make install

该fastcgi++库完全使用c++编写,依赖boost库(要求>1.35),所以安装时需要先安装boost库。
编译过程中碰到问题 mysql_set_character_set 找不到问题,修改 src/mysql.cpp 文件,将如下两行注释掉

  1.         //if(mysql_set_character_set(&connection, charset))
  2.         //      throw Error(&connection);

再次编译通过。
安装后include头文件被拷贝到 /usr/local/include/fastcgi++/,库文件被拷贝到 /usr/local/lib/fastcgipp.a

编译examples目录下测试用的fastcgi应用,验证编译安装的正常性。
使用默认的 make examples 没有编译通过。打开Makefile文件,发现缺少对 boost库的引用,将其添加上,再次编译,通过。

  1. FASTCGIPP_INCLUDE=/usr/local/include/fastcgi++
  2. BOOST_INCLUDE=/usr/local/include/boost-1_39
  3. BOOST_CPPFLAG=-I$(BOOST_INCLUDE) -pthread
  4. BOOST_THREADLIB=-lboost_thread-gcc34-mt-1_39 -pthread
  5.  
  6. pkgConfigLibs=-lfastcgipp -lboost_thread -lmysqlclient
  7. CXX=g++
  8. CXXFLAG= -g -O2
  9.  
  10. database.fcgi: database.cpp
  11.         $(CXX) -o database.fcgi database.cpp -I$(FASTCGIPP_INCLUDE) $(pkgConfigLibs) $(BOOST_CPPFLAGS) $
  12. (CXXFLAGS) $(BOOST_THREAD_LIBS)
  13.  
  14. clean:
  15.         rm -f *.fcgi

—————-
默认Makefile编译不通过的原因
1. 缺少对boost库的目录include引用
2. 缺少boost线程库的应用,默认使用的是-lboost_thread 需要为-lboost_thread-gcc34-mt-1_39 -pthread

Popularity: 5% [?]

Random Posts

Comments

Comments are closed.