zoukankan      html  css  js  c++  java
  • CppCMS1.0.3 Build by VS2012

    1、CppCMS简介

    CppCMS1.0.3 <wbr>Build <wbr>by <wbr>VS2012

    CppCMS是一个C++的Web开发框架(不是一个CMS)。它不同于大多数其他Web开发框架,如巨蟒Django , Java的Servlets ,或C++ Wt因为它在设计和调整来处理极高的负荷,而且它的目的是发展的网站,而不是“GUI-Like” Web应用程序。[1] 

    CppCMS 即 C++ Web Framework (C++ 网络架构)是比较流行的一个用C++编写的开发架构。

    它采用传统的网络程序开发所用的设计模式MVC。其它语言采用MVC模式的架构还有 Zend (PHP)和 Django (Python). 如果软件开发人员有基于这两种架构的开发经验并且懂得C++,那么他就可以很快熟悉CppCMS并基于它进行网站开发。C++网站开发通常适用于网络负载较重的公司。 C++研发通常较其他高级语言,如Java,.NET,或者脚本语言PHP, Python要更为复杂。基于这个原因,小公司则不宜采用C++或者CppCMS进行研发。

     

    当前版本:cppcms-1.0.3

    Download: http://cppcms.com/wikipp/en/page/main

     

    2、依赖

    ZLib 1.2.7

    http://sourceforge.net/projects/libpng/files/zlib/

     

    PCRE 8.32

    ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/

     

    Pcre for Windows(上面的PCRE 8.32给CPPCMS编译时没编译过,可能有选项没设定好,换成gunwin32 pcre库就可以了,先这样吧)

    http://gnuwin32.sourceforge.net/packages/pcre.htm

     

    icu4c 4.8(直接下编译好的dll)

    http://site.icu-project.org/download

     

    openssl-1.0.1c

    http://www.openssl.org/contrib/

     

    3、环境与工具

    Win7

    Python 2.7.3 (需自己配置环境变量)

    ActivePerl 5.16.2

    vs2012

    NASM (需自己配置环境变量)

    CMAKE2.8

    我的编译目录G:CPPWebframework

     

    4、编译ZLIB

    解压ZLib 1.2.7并进入解压出的目录G:CPPWebframeworklibzlib-1.2.7,再进入win32目录

    在命令行执行:cmake .. -G" Visual Studio 11" (注意:cmake空格后有两点)

    生成VS2012的工程文件ALL_BUILD.vcxproj,用VS2012打开它并编译成Release

    修改源码zlib.h,将#include "zconf.h"改为#include "win32zconf.h"

     

    5、编译PCRE

    解压PCRE 8.32并进入G:CPPWebframeworklibpcre-8.32

    在命令行执行:cmake  -G" Visual Studio 11"

    生成VS2012的工程文件ALL_BUILD.vcxproj,用VS2012打开它并编译成Release

    注意:这个库编译成功,但是给CPPCMS编译时不成功,换成GUNWIN32 PCRE7.0后成功了。

     

    6、编译openssl-1.0.1c

    解压openssl-1.0.1c进入目录

    执行命令:perl Configure VC-WIN32 --prefix=安装目录

    再执行批处理:ms32all.bat

    会在out32dll目录生成动态库文件

     

    7、编译cppcms-1.0.3

    将目录cppcms-1.0.3oosterliblocale est 下的源文件 test_boundary.cpp和test_posix_formatting.cpp另存为UTF-8格式(源文件中有日语,VS编译时变成了乱码)

     

    如果编译器报错,无法打开目录cppcms-1.0.3CMakeFilescppcms.dircppcms_boostsrc下的gzip.cpp和zlib.cpp,直接从目录cppcms-1.0.3cppcms_boostsrc下将两个源文件拷贝过去,这可能是生成的Makefile路径有文件,原本CMakeFiles这个目录只是存放obj文件的

     

    在cppcms-1.0.3目录下执行:

    cmake -G"NMake Makefiles" -DCMAKE_INCLUDE_PATH=G:CPPWebframeworklibpcre-7.0-libinclude;G:CPPWebframeworklibzlib-1.2.7;G:CPPWebframeworklibicuinclude;G:CPPWebframeworklibopenssl-1.0.1cinc32 -DCMAKE_LIBRARY_PATH=G:CPPWebframeworklibpcre-7.0-liblib;G:CPPWebframeworklibzlib-1.2.7win32Release;G:CPPWebframeworklibiculib;G:CPPWebframeworklibopenssl-1.0.1cout32dll;G:CPPWebframeworkcppcmscppcms-1.0.3ooster -DCMAKE_INSTALL_PREFIX=G:CPPWebframeworkcppcmslibcppcms -DCMAKE_BUILD_TYPE=Release

    (这是本人的库路径)

     

    生成成功后:

    nmake

    nmake install

     

    如果依赖库路径变化,请重新生成vs2012的工程文件

     

    Build Options
      -DDISABLE_STATIC=ON -- disable building of static version of cppcms library
      -DDISABLE_SHARED=ON -- disable building of shared version of cppcms library
      -DDISABLE_ICONV=ON -- disable usage of iconv (ICU would be used instead)
      -DDISABLE_GCRYPT=ON -- disable usage of gcrypt library. - -DDISABLE_OPENSSL=ON -- disable usage of OpenSSL.
      -DUSE_WINDOWS6_API=ON -- use Windows Vista, Windows 7 API if possible, allows CppCMS using native Windows Vista/7 conditional variables and other advanced API. By default disabled.
      -DLIBDIR=lib64 - use alternative name for library directory, for example use lib64 on Rad Hat based distributions.
     
    Generic Size Optimization Options for Embedded Builds:
      -DDISABLE_FCGI=ON -- build without FastCGI Server API.
      -DDISABLE_SCGI=ON -- build without SCGI Server API.
      -DDISABLE_HTTP=ON -- build without internal HTTP server.
      -DDISABLE_ICU_LOCALE=ON -- do not use ICU for localization but rather C++ std::locale, Windows API or POSIX API based localization -- many localization features would not be available, but it may be useful for embedded builds.
      -DDISABLE_PREFORK_CACHE=ON - disable cache support for preforking modes (process shared cache)
      -DDISABLE_TCPCACHE=ON - disable distributed cache support (memcached-like solution support)
      -DDISABLE_CACHE=ON - disable caching system at all.
      -DDISABLE_GZIP=ON - disable output gzip compression support (eliminates dependency on zlib)
     
    Generic useful CMake options:
     
    -DCMAKE_BUILD_TYPE=(Debug|Release|RelWithDebInfo|MinSizeRel) -- release type. RelWithDebInfo is default, unless using MSVC where Debug is default.

     
    -DCMAKE_INCLUDE_PATH=/path/to/include -- path to location of libraries headers, provide it in order to find libraries headers installed in non-standard locations. You almost always need to provide it under Windows.

     

    -DCMAKE_LIBRARY_PATH=/path/to/lib -- path to location of libraries, provide it in order to find libraries installed in non-standard locations. You almost always need to provide it under Windows.

    -DCMAKE_INSTALL_PREFIX=/usr/local -- Installation prefix (similar to autoconf --prefix). Defaults to /usr/local

    参考:

    http://blog.csdn.net/lee353086/article/details/7755809

    http://blog.csdn.net/rydiy/article/details/7710301

    http://cppcms.com/wikipp/en/page/cppcms_1x_build

    转:http://www.vimi.hk/pages/201502/150206202042911622741.html

  • 相关阅读:
    编程语言
    俄罗斯方块
    四则运算
    2019-2020-1 20191312《信息安全专业导论》第七周学习总结
    20191312-获奖感想与学习心得
    2019-2020-1学期 20192428 《网络空间安全专业导论》第九周小组讨论
    2019-2020-1学期 20192428 《网络空间安全专业导论》第九周学习总结
    2019-2020-1学期 20192428 第八周作业——小学四则运算实践
    2019-2020-1学期 20192428《网络空间安全专业导论》第八周学习总结
    2019-2020-1学期 20192428 《网络空间安全专业导论》第七周学习总结
  • 原文地址:https://www.cnblogs.com/lidabo/p/7150480.html
Copyright © 2011-2022 走看看