- 1
- 0
- 约4.31千字
- 约 10页
- 2017-03-15 发布于四川
- 举报
Cmake的介绍和使用 Cmake实践Cmake优点:1.???????开发源代码,实用类BSD许可发布。2.???????跨平台,并可以生成native编译配置文件,在linux/unix平台,生成makefile,在mac平台可以生成xcode,在windows平台可以生成msvc工程的配置文件。3.???????能够管理大型项目4.???????简化编译构建过程和编译过程,只需要cmake+make就可以5.???????高效率6.???????可扩展,可以为cmake编写特定功能的模块,扩充cmake功能如何安装cmake1.???????Cmake的安装可以使用autotools进行安装,点击cmake-2.8.6.tar.gz?链接,可以对软件进行下载。2.???????./configure3.???????make4.???????sudo make install?Cmake的原理?Helloworld cmake//main.cpp#includecstdio?int main(){??? printf(hello world from main\n);??? return 0;}?创建CMakeLists.txt(注意大小写一个字母都不能错)向该文件中加入以下几行(稍后会做解释)PROJECT (HELLO)SET(SRC_LIST main.cpp)MESSAGE(STATUS This is BINARY dir ${HELLO_BINARY_DIR})MESSAGE(STATUS This is SOURCE dir ${HELLO_SOURCE_DIR})ADD_EXECUTABLE(hello ${SRC_LIST})运行以下命令:cmake . (别忘记加上这个点,表示当前目录)注意执行完这句话之后会生成几个文件如下:CMakeFiles, CMakeCache.txt, cmake_install.cmake等文件,并且生成了Makefile然后执行make?就可以生成可执行文件hello这是当前目录下就会生成可执行文件如下图:对例子的解释:CMakeLists.txt的内容如下:PROJECT (HELLO)SET(SRC_LIST main.cpp)MESSAGE(STATUS This is BINARY dir ${HELLO_BINARY_DIR})MESSAGE(STATUS This is SOURCE dir ${HELLO_SOURCE_DIR})ADD_EXECUTABLE(hello ${SRC_LIST})?Project的指令的语法是:PROJECT(projectname [CXX] [C] [JAVA])这个执行是用来定义工程的名称的和定义工程支持的语言。这个指令也隐式的定义了两个cmake变量:projectname_BINARY_DIR以及projectname_BINARY_DIR,这里就是HELLO_BINARY_DIR和HELLO_SOURCE_DIR,两个变量指的都是当前工程的路径。SET指令的语法:SET(VAR[VALUE] [CACHE TYPE DOCSTRING [FORCE]])Set指令是用来显式的定义变量的,我们之前用到的是SET(SRC_LIST main.cpp)如果有多个源文件,也可以定义成SET(SRC_LIST main.cpp t1.cpp t2.cpp)。?MESSAGE指令的语法是:MESSAGE([SEND_ERROR | STATUS | FATAL_ERROR] message to display ...)这个指令用于向终端输出用户信息,包含三种类型:SEND_ERROR,产生错误,生成过程被跳过。SATUS,输出前缀为-的信息。FATAL_ERROR,立即终止所有cmake过程。我们在这里使用的是STATUS信息输出,显示了由PROJECT指令顶一顶两个饮食变量HELLO_BINARY_DIR和HELLO_SOURCE_DIR。?ADD_EXECUTABLE(hello ${SRC_LIST})定义了这个工程会生成一个文件名为hello的可执行文件,相关的源文件是SRC_LIST中定义的源文件列表,本例中你可以直接写成ADD_EXECUTABLE(hello main.c)。?将本例改写成一个最简化的CMakeLists.txt:PROJECT(HELLO)ADD_EXECUTABLE(hello main.c)?下面我们介绍一个比较实用的例子,即包含生成静态库又包含引入外部头文件和链接库的cmake demo。先按照工程规范建立工程目录,并编写代码,以下面的工程目录为例进行解释这个例子,工程的目录结构为
您可能关注的文档
- CAD实验汇报模板文档.doc
- 2019年小学英语语法要点及习题A.doc
- App定制手机app开发平台的操作指南.docx
- APP融资的方案模板.doc
- APQP项目的管理程序文件.doc
- BI主流工具横向比较 [2].docx
- 2019年小学英语说课稿三年级英语《Unit3Let》说课稿范文.doc
- 2019年小学英语课堂教学实效性问题.doc
- 2019年小学英语课堂教学评价的问题分析及策略.doc
- 2019年小学英语课堂教学问题分析及教学建议.doc
- 2025-2026学年天津市和平区高三(上)期末数学试卷(含解析).pdf
- 2025-2026学年云南省楚雄州高三(上)期末数学试卷(含答案).pdf
- 2025-2026学年甘肃省天水市张家川实验中学高三(上)期末数学试卷(含答案).docx
- 2025-2026学年福建省厦门市松柏中学高二(上)期末数学试卷(含答案).docx
- 2025-2026学年广西钦州市高一(上)期末物理试卷(含答案).docx
- 2025-2026学年河北省邯郸市临漳县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省石家庄二十三中七年级(上)期末历史试卷(含答案).docx
- 2025-2026学年海南省五指山市九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省唐山市玉田县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省邢台市市区九年级(上)期末化学试卷(含答案).docx
最近下载
- 高等学校中医临床教学基地教学工作水平评估指标体系与标准.pdf
- 2022届高考物理一轮复习图像经典100题.pdf VIP
- 新能源汽车电气技术 配套课件.pptx
- 2025年高考语文备考之300个文言实词汇编(含课内句子).pdf VIP
- DB11∕T2293-2024住宅工程质量品质提升技术标准.pdf VIP
- Marantz马兰士家庭影院 AV 擴音機 SR8012 SR8012 Quick Start Guide English说明书用户手册.pdf
- 人教八上:专题六 无刻度直尺作图(含解析).docx VIP
- 2023年江西省中考语文试卷及答案解析.pdf VIP
- 2025年山东劳动职业技术学院高职单招笔试语文试题库含答案解析(5套共100道单选合辑).docx VIP
- 2025-2026学年七年级英语春季开学第一课 课件:马踏新春,趣学英语(全国通用版).pptx
原创力文档

文档评论(0)