我正在尝试编写一个CMakeLists.txt来加速编译.
可执行文件取决于脚本生成的.cpp文件:我使用cppcms Web应用程序库,它具有模板系统,其中.tmpl必须在编译期间转换为.cpp文件,如下所示:
cppcms_tmpl_cc page.tmpl -o page.cpp
Run Code Online (Sandbox Code Playgroud)
有相关问题涉及在cmake中使用bash命令:
如何在编译时在CMake生成的Makefile中运行命令?
CMake:如何在CMakeLists.txt中使用bash命令
这些问题涵盖了我的大多数需求.
我现在要知道的是,每当page.tmpl本身发生变化时,如何告诉cmake运行上面的命令并重新生成page.cpp,然后呢?
目标显然是改进编译时间并使用最新模板获得最新二进制文件.
(主持人可以添加cppcms标签吗?)
[编辑:我实际上是在尝试将以下Makefile转换为cmake:
LIBS=-lcppcms -lconfig++ -lboost_filesystem-mt
all: clean gitbrowser
gitbrowser: main.cpp view.cpp content.hpp gitbrowser.cpp
$(CXX) -Wall main.cpp gitbrowser.cpp view.cpp -o run ${LIBS}
view.cpp: page.tmpl content.hpp
cppcms_tmpl_cc page.tmpl -o view.cpp
Run Code Online (Sandbox Code Playgroud)
[编辑2:我在官方cppcms wiki中添加了关于解决方案的说明:
http://art-blog.no-ip.info/wikipp/en/page/cppcms_1x_howto#How.to.compile.the.templates.with . cmake.
我一直在寻找一个C++ Web框架,它允许我直接在.dll插件中构建GUI控制面板.在过去,我使用过Nancy Framework for .NET Projects,这是非常特殊的(这是我第一次使用这种类型的框架).我找到了一些基于其他Stack Overflow问题的优秀候选人,但是我无法弄清楚哪些(如果有的话)有嵌入式Web服务器.
C++服务器页面 - 看起来很奇怪,但是运行在IIS或Apache之上.
CppCMS - 不断推荐,但是它有嵌入式服务器吗?
TreeFrog - 也推荐,但似乎有非常破碎的文档?
建议将哪一个用于完全嵌入式解决方案?易用性也是一个巨大的优势,但我愿意花时间让它工作,只要它能够满足需要.谢谢!
尽管我已经安装了open ssl,但它找不到库的位置.openssl默认存在于我的Ubuntu中,它仍然找不到,所以我下载了一个新的发行版并重新安装到/ usr/local/ssl.我通过默认的cmake命令安装:
cmake ..
Run Code Online (Sandbox Code Playgroud)
除了明确指定路径:
cmake -DCMAKE_INCLUDE_PATH=/usr/local/ssl/include -DCMAKE_LIBRARY_PATH=/usr/local/ssl/lib ..
Run Code Online (Sandbox Code Playgroud)
它不断产生这个错误:
-- Looking for ICU libraries
-- ICU not found, disabling ICU localization backend
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
PCRE_LIB
linked by target "booster" in directory /home/hoangtu/Programs/cppcms-0.99.7/booster
linked by target "booster-static" in directory /home/hoangtu/Programs/cppcms-0.99.7/booster
Run Code Online (Sandbox Code Playgroud)
这是什么意思?它应该找到开放的ssl.ICU也是默认安装在Ubuntu中的.另外,关于最后两行的内容是什么?
编辑:好的,我下载并安装ICU到我的usr目录.ICU现在找到了.现在唯一的错误仍然是:
-- Looking for ICU libraries
-- …
Run Code Online (Sandbox Code Playgroud)