标签:内存 minimum block keyword ast com round play flow
1.cmake_minimum_required(VERSION 3.2) 指定最低cmake版本
2.project(project_name) 指定项目的名称,一般和项目到文件夹对应
11.find_library() 类似于find_path 用于查找链接库并将结果保存在变量中
12.set_target_properties(hello_static properties output_name "hello") 默认规则不能有相同名字的动态库和静态库。所以当生成静态库到时候,动态库会被删除,因为只能允许一个存在。所以首先将静态库先命名为hello_static,然后再修改输出名字。
project_binary_dir(cmake_binary_dir) 路径/build
project_source_dir(cmake_source_dir) 路径/src
系统信息
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_exectuable(example example.cpp) //编译example.cpp 生成 example 对象文件
target_link_libraries(example gsl) //链接lib库文件到example 对象文件
在链接阶段,会将汇编生成到目标文件与引用到到库一起链接打包到可执行文件中。因此对应到链接方式称为静态链接。
静态库对函数库到链接时放在编译时期完成到。
程序在运行时与函数毫无瓜葛,移植方便。
浪费空间和资源,所有相关到目标文件与牵涉到的函数库被链接合成一个可执行文件。
过程:
1、将代码文件编译为目标文件 file.o
2、通过工具将目标文件打包成 .a静态库文件
3、生成file.a
针对于静态库到问题:空间浪费、静态库对程序到更新等会带来麻烦
动态库在程序编译时并不会被连接到目标代码到中,而是在程序运行时才被载入。不同到应用程序如果调用相同到库,那么,在内存里只有一份实例,避免空间浪费。用户可增量跟新动态库。
过程:
1、生成目标文件
2、生成动态库
标签:内存 minimum block keyword ast com round play flow
原文地址:https://www.cnblogs.com/nowheretrix/p/10420561.html