newLISP C++编译示范工程cppwizard v1.2.0发布

来源:互联网 发布:淘宝秒杀不用刷新 编辑:程序博客网 时间:2024/05/21 10:50

项目代码在gitlab.com上

git@gitlab.com:newlisp/cppwizard.git


该项目包含了两个工程,一个是console,普通的C++ 11工程,另一个是cppcms_base,是基于cppcms的web工程。

注意,默认配置的是clang编译器,cppcms库需要先安装。newLISP显然是需要事先安装的。目前仅支持linux系统。

每个工程目录下都有一个builder目录,编译时只需要运行./rebuild.lsp即可。

在builder目录下有一个配置文件build_config.lsp:

(set 'include-paths      (list "../include"))(set 'src-paths      (list "../src/"   ))(set 'libs      (list "pthread"   "boost_log"   "boost_log_setup"   "boost_system"   "boost_thread"   "boost_filesystem"   ))(set 'o-dir "./object")(set 'bin-dir "bin")(set 'binary-name "example")(set 'cc "c++")(global 'cc)

可以调整里面的配置,修改头文件,源代码文件目录位置,以及修改链接库,等等。

cppcms_base项目由于需要使用cppcms编译,所以配置多两个库cppcms和booster.

(set 'include-paths      (list "../include"))(set 'src-paths      (list "../src/"   ))(set 'libs      (list "pthread"   "cppcms"   "booster"   "boost_log"   "boost_log_setup"   "boost_system"   "boost_thread"   "boost_filesystem"   ))(set 'o-dir "./object")(set 'bin-dir "bin")(set 'binary-name "web_app_example")(set 'cc "c++")(global 'cc)

同时在rebuild.lsp中使用tmpl.lsp文件,该文件内部使用cppcms_tmpl_cc命令将tmpl文件转换成cc

;; clean view/*.cpp files generated from cppcms_tmpl_cc(set 'view-dir "../src/view")(if (directory? view-dir)    (file:clean-folder view-dir)  (make-dir view-dir))(set 'tmpl-dir "../template");; generate .cc files in view folder(load "tmpl.lsp")(tmpl-to-cc tmpl-dir view-dir)

编译输出如下:

cppwizard/cppcms_base/builder$ ./rebuild.lsp cppcms_tmpl_cc ../template/page.tmpl -o ../src/view/page.ccclean ./object folderc++ -g -std=c++11 -I../include  -Wall -DBOOST_LOG_DYN_LINK -o ./object/site.cpp.o -c ../src/controller/site.cppc++ -g -std=c++11 -I../include  -Wall -DBOOST_LOG_DYN_LINK -o ./object/page.cc.o -c ../src/view/page.ccc++ -g -std=c++11 -I../include  -Wall -DBOOST_LOG_DYN_LINK -o ./object/main.cpp.o -c ../src/main.cppc++ -g /home/dean/work/gitlab.com/cppwizard/cppcms_base/builder/object/page.cc.o /home/dean/work/gitlab.com/cppwizard/cppcms_base/builder/object/main.cpp.o /home/dean/work/gitlab.com/cppwizard/cppcms_base/builder/object/site.cpp.o -o bin/web_app_example -rdynamic -pthread -lcppcms -lbooster -lboost_log -lboost_log_setup -lboost_system -lboost_thread -lboost_filesystem




0 0