1、CppCMS简介

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:\CPPWebframework\lib\zlib-1.2.7,再进入win32目录

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

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

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

5、编译PCRE

解压PCRE 8.32并进入G:\CPPWebframework\lib\pcre-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=安装目录

再执行批处理:ms\32all.bat

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

7、编译cppcms-1.0.3

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

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

在cppcms-1.0.3目录下执行:

cmake -G"NMake Makefiles" -DCMAKE_INCLUDE_PATH=G:\CPPWebframework\lib\pcre-7.0-lib\include;G:\CPPWebframework\lib\zlib-1.2.7;G:\CPPWebframework\lib\icu\include;G:\CPPWebframework\lib\openssl-1.0.1c\inc32 -DCMAKE_LIBRARY_PATH=G:\CPPWebframework\lib\pcre-7.0-lib\lib;G:\CPPWebframework\lib\zlib-1.2.7\win32\Release;G:\CPPWebframework\lib\icu\lib;G:\CPPWebframework\lib\openssl-1.0.1c\out32dll;G:\CPPWebframework\cppcms\cppcms-1.0.3\booster -DCMAKE_INSTALL_PREFIX=G:\CPPWebframework\cppcms\libcppcms -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

CppCMS1.0.3 Build by VS2012的更多相关文章

  1. sublime Text2 2.0.2 build 2221 64位 破解(已测试)

    近终于找到  sublime Text2 升级到 2.0.2 build 2221 64位 的破破解 输入注册码就成了 ----- BEGIN LICENSE ----- Andrew Weber S ...

  2. ARM64平台编译stream、netperf出错解决办法 解决办法:指定编译平台为alpha [root@localhost netperf-2.6.0]# ./configure –build=alpha

    ARM64平台编译stream.netperf出错解决办法 http://ilinuxkernel.com/?p=1738 stream编译出错信息: [root@localhost stream]# ...

  3. [Freescale]Freescale L3.14.52_1.1.0 yocto build

    可参照:http://blog.csdn.net/wince_lover/article/details/51456745 1. Refer to <基于i.mx6处理器的Yocto项目及Lin ...

  4. Liferay SDK 6.2与7.0中build.[$username].properties 文件的配置

    这篇文章是针对刚开始开发Liferay的新手写的,希望能够帮到刚入门的开发者减少一些配置上的麻烦. 前提: 1. 下载了Liferay IDE(Liferay的官方开发工具) 2.下载了Liferay ...

  5. angular4.0项目build发布后,刷新页面报错404

    angular4.0项目执行npm run build后,进入页面正常显示. 但是当刷新页面时,报错404,页面未找到. 出现这个问题的原因,应该是找不到路由地址导致的,然后找到了下面的解决方案. 找 ...

  6. 基于androidstudio3.0的build文件配置问题

    最近,在研究APP自动化相关的东西,在搭建环境的时候,遇到的坑以及最后解决的方法,不过目前很多东西了解得还不是很细,暂时先简单的记录一下一.build配置文件 主要分为两种: 1.工程下的build配 ...

  7. vue2.0 配置build项目打包目录、资源文件(assets\static)打包目录

    vue项目默认的打包路径:根目录下的dist文件夹下: 但是在项目开发中,我们肯定希望项目提交到svn目录或者git目录下,否则每次复制过去,太麻烦了: 那怎么配置打包路径呢?下面来看看: 我们找到打 ...

  8. vue2.0 项目build后资源文件报错404的解决方案

    当vue项目build后,我们会看到css.js报错404的问题: 那我们就去找错误原因吧. 首先,查看build后的dist文件目录 可以看出,js.css在index.html的同级目录下: 然后 ...

  9. Sublime Text 2.0.2,Build 2221注册码

    Help ->Enter License,输入如下序列号: ----- BEGIN LICENSE ----- Andrew Weber Single User License EA7E-855 ...

随机推荐

  1. 20145202 《信息安全系统设计基础》git安装

    git的安装 直接输入指令将其安装就可以了. 安装的时候要设置公钥,我不知道以前在windows上设置过的公钥是否还能用所以我就还是从新搞了一个. 验证可以连通 遇到的问题

  2. js常用框架

    JS常用框架:jQuery.Prototype.MooTools 参考:w3cshool jQuery jQuery 是目前最受欢迎的 JavaScript 框架. 它使用 CSS 选择器来访问和操作 ...

  3. 《Cracking the Coding Interview》——第9章:递归和动态规划——题目7

    2014-03-20 03:35 题目:实现画图的Flood Fill操作. 解法:DFS和BFS皆可,但BFS使用的队列在时间复杂度上常数项比较大,速度略慢,所以我选了DFS.当然,如果图很大的话D ...

  4. 我给女朋友讲编程CSS系列(4) CSS盒子模型

    什么是CSS盒子模型?如何学习CSS的盒子模型? 这篇文章,以 [分享 + 结论]  的方式来写. 1,  看w3school的[CSS 框模型概述] 网址为: http://www.w3school ...

  5. python之列表/元组/字典/字符串

    一.列表 格式:list = ['xxx','xxx','xxx'] 性质:可以修改列表内容 copy用法: import copy names = ['] names01 = names #直接引用 ...

  6. jsonp、瀑布流布局、组合搜索、多级评论(评论树)、Tornado初识

    1.JSONP原理剖析以及实现 1.1 同源策略限制 用django分别建立两个项目,jsonp01和jsonp02,然后再在这两个项目里分别建立一个app,比如名字叫jsonp1.jsonp2:js ...

  7. unity生命周期

    1.静态构造函数 当程序集被加载的时候就被调用了,如果你的unity处于编辑状态时,此时你保存一个脚本(从而迫使重新编译),静态构造函数会立即被调用,因为unity加载了DLL.并且它将不会再次运行, ...

  8. (转\整)UE4游戏优化 多人大地型游戏的优化(一)游戏线程的优化

    施主分享随缘,评论随心,@author:白袍小道 小道暗语: 1.因为小道这里博客目录没自己整,暂时就用随笔目录结构,所以二级目录那啥就忽略了.标题格式大致都是(原or转) 二级目录 (标题) 2.因 ...

  9. Megacli查看Dell服务器Raid状态

    通常我们使用的DELL/HP/IBM三家的机架式PC级服务器阵列卡是从LSI的卡OEM出来的,DELL和IBM两家的阵列卡原生程度较高,没有做太多封装,可以用原厂提供的阵列卡管理工具进行监控:而HP的 ...

  10. 服务器tomcat配置教程

    2018年上学期期末课程设计做了一个留言板,但是我需要把这个Jave Web弄到我的服务器上 首先我们可以安装jdk tomcat在启动时,会读取环境变量的信息,需要一个CATALINA_HOME 与 ...