cmake基础指令 cmakelist.txt编写
主体框架: 工程配置部分:工程名,编译调试模式,编译系统语言 依赖部分:工程包,头文件,依赖库等 其他辅助:参数打印,遍历目录等 判断控制部分:条件判断,函数定义,条件执行等 源文件(.h , .cpp等) ——> 预编译——>编译——>汇编——>链接——>可执行文件 静态库:链接阶段,库中目标文件所含的所有将被程序使用的函数的机器码,被copy到最终的可执行文件中。 特点 1.静态库对函数库的链接是放在编译时期完成的; 2.程序在运行时与函数库再无瓜葛, 移植方便; 3.运行效率相对快; 4.占用磁盘和内存空间,因为所有相关的目标文件与牵涉到的函数库被链接合成一个可执行文件。 静态库的局限性: 1.空间浪费是静态库的一个问题; 2.静态库对程序的更新、部署和发布页会带来麻烦; 3.如果静态库lib更新了,所以使用它的应用程序都需要重新编译、发布给用户; 4.对于玩家来说,可能是一个很小的改动,却导致整个程序重新下载,全量更新。 5.若静态库占用1M内存,有2000个这样的程序,将占用近2G的空间。 动态库:程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入。 特点 1.可执行文件只包含它需要的函数的引用表,而不是所有的函数代码; 2.只有在程序执行时, 那些需要的函数代码才被拷贝到内存中。 3.动态库在程序运行是才被载入,也解决了静态库对程序的更新