- Set Normal Variable
- set(
... [PARENT_SCOPE]) - Set Cache Entry
- set(
... CACHE [FORCE]) - Set Environment Variable
- set(ENV{
} ...)
Top level source directory for the current project.
即是工程的顶级目录
【cmake从入门到精通 cmake ..有什么用】 PROJECT_BINARY_DIR
Full path to build directory for project.
即是编译目录,比如如果你创建了build目录(cd build和cmake ..),则路径为:
PROJECT_SOURCE_DIR/build
如果在工程顶级目录直接进行编译(cmake .)则和PROJECT_SOURCE_DIR一致
案例3-单文件+库文件调用
顶层目录内的文件内容
先编译库文件
库文件放在MathFunctions目录 。
Now we will add a library to our project. This library will contain our own implementation for computing the square root of a number. The executable can then use this library instead of the standard square root function provided by the compiler. For this tutorial we will put the library into a subdirectory called MathFunctions. It will have the following one line CMakeLists.txt file:
- 添加CMakeLists.txt
add_library(MathFunctions mysqrt.cpp)
2.添加头文件MathFunctions.h
#ifndef __MATH_FUNCTION_H__#define __MATH_FUNCTION_H__double mysqrt(double input);#endif
3.添加实现文件
#include
此时目录文件为:
4.创建build目录并进行编译
mkdir buildcd buildcmake ..make
此时build目录下生成libMathFunctions.a文件,将其拷贝到上一级目录(即是MathFunctions)
cp libMathFunctions.a ../cd ..ls#可以看到当前libMathFunctions目录的内容CMakeLists.txt MathFunctions.cpp MathFunctions.h build libMathFunctions.a
编译main函数所在文件
- 顶层目录CMakeLists.txt文件
2.main函数所在文件
03-Tutorial.cpp
// A simple program that computes the square root of a number#include #include #include
3.编译和执行
mkdir buildcd buildcmake ..make
执行文件./tutorial
lqf@ubuntu:/mnt/hgfs/linux/multimedia/src/project/cmake_learn/03-Tutorial/build$ ./tutorial ./tutorial Version 1.0call mysqrtThe square root of 4 is 2
与之相关的我们还要了解工程参数配置,代码规范与命名规则,文件命名与变量命名规则,脚本配置工具autoconf,代码工程组织架构makefile.
这是对于架构工程的一个技术概括 。对技术感兴趣的朋友可以一一了解下 。
- 【游戏世界】王者荣耀:马可波罗为什么能一直火?从技能就可以看出策划偏心
- 【历史故事】知青蒋小磊:从北京知青到上门女婿,他心中有说不出的无奈和心酸
- 手游魅者入门级攻略
- 进口红酒适合做什么生意 如何从法国进口红酒来中国销售
- 面相分析夫妻缘分 从夫妻宫来看(图文)
- 葡萄酒让法国成为 法国从文艺复兴时期开始种植酿酒葡萄
- 体相分析-如何从脖子看你是否富贵?(图文)
- 王相山《坤卦的智慧》从哲学角度认识坤卦
- 开放生二胎,你要知道的易学知识!
- 从窝瓜到南瓜 窝瓜和南瓜的区别