1.cmake_minimum_required(VERSION 3.2) 指定最低cmake版本git
2.project(project_name) 指定项目的名称,通常和项目到文件夹对应github
project_binary_dir(cmake_binary_dir) 路径/build
project_source_dir(cmake_source_dir) 路径/src
系统信息web
1,CMAKE_MAJOR_VERSION,CMAKE 主版本号,好比 2.4.6 中的 2
2,CMAKE_MINOR_VERSION,CMAKE 次版本号,好比 2.4.6 中的 4
3,CMAKE_PATCH_VERSION,CMAKE 补丁等级,好比 2.4.6 中的 6
4,CMAKE_SYSTEM,系统名称,好比 Linux-2.6.22
5,CMAKE_SYSTEM_NAME,不包含版本的系统名,好比 Linux
6,CMAKE_SYSTEM_VERSION,系统版本,好比 2.6.22
7,CMAKE_SYSTEM_PROCESSOR,处理器名称,好比 i686.
8,UNIX,在全部的类 UNIX 平台为 TRUE,包括 OS X 和 cygwin
9,WIN32,在全部的 win32 平台为 TRUE,包括 cygwin
cmake_minimum_required(version 3.2)
project(example)
include_directories("/usr/include") //程序头文件的位置
link_directories("/usr/lib") //程序库文件的位置
add_executable(example example.cpp) //编译example.cpp 生成 example 对象文件
target_link_libraries(example gsl) //连接lib库文件到example 对象文件
在连接阶段,会将汇编生成到目标文件与引用到到库一块儿连接打包到可执行文件中。所以对应到连接方式称为静态连接。
静态库对函数库到连接时放在编译时期完成到。
程序在运行时与函数毫无瓜葛,移植方便。
浪费空间和资源,全部相关到目标文件与牵涉到的函数库被连接合成一个可执行文件。
过程:
1、将代码文件编译为目标文件 file.o
2、经过工具将目标文件打包成 .a静态库文件
3、生成file.a
针对于静态库到问题:空间浪费、静态库对程序到更新等会带来麻烦
动态库在程序编译时并不会被链接到目标代码到中,而是在程序运行时才被载入。不一样到应用程序若是调用相同到库,那么,在内存里只有一份实例,避免空间浪费。用户可增量跟新动态库。
过程:
1、生成目标文件
2、生成动态库