ps:(今天看见一句话,很喜欢,共勉,自律的痛苦亲如鸿毛,后悔的痛苦重如泰山。)
这边只放一些工程类的认识问题了,具体的就不放这了,免得给自己弄乱了。
c++博大精深,慢慢学,我记性不好,要多记录记录。
C++
1.代码的编译过程
- 预处理(.i)-编译(.s)-汇编(.o)-链接 \
- 预处理分为:文件包含#include编译,宏定义#define命令,条件编译命令(就是在实际编译前,把包含的头文件啊,宏定义的参数之类的加载进来),然后把高级语言翻译成一段一段操作,接着汇编把这一段一段操作翻译成机器听得懂的语言,最后链接起来。
2.什么是msvc,mingw
很多初学者不明白什么是msvc,mingw,简单介绍一下就是
- Msvc就是微软的visual c++运行库,很多程序在编制的时候,使用了微软的运行库(类似于*.dll),大大减少了软件的编码量,却提高了兼容性。但运行的时候,需要这些运行库。也就是编程的时候调用了很多库,就是这里面的。
- Mingw:visual studio code本质上是代码编辑器,不具备代码编译和调试功能,MinGW是一个可自由使用和自由发布的Windows特定头文件和使用GNU工具集导入库的集合,允许你在GNU/Linux和Windows平台生成本地的Windows程序而不需要第三方C运行(C Runtime)库(来自百度百科).
简单说就是用来支持代码的编译(比如gcc)和调试(gdb)。
3.cmake makefile
-
什么是makefile?
对于大一点的工程来说,如果直接让你起运行环境,你会非常痛苦,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,有效地描述这些文件之间的依赖关系以及处理命令,当个别文件改动后仅执行必要的处理,而不必重复整个编译过程,可以大大提高软件开发的效率。 -
Cmake是用来makefile的一个工具:
读入所有源文件之后,自动生成makefile。
即使是原作者给出了相关的结构文档,对新手来说建立工程的过程依旧是漫长而艰辛的,因此CMake的作用就凸显出来了。原作者只需要生成一份CMakeLists.txt文档,框架的使用者们只需要在下载源码的同时下载作者提供的CMakeLists.txt,就可以利用CMake,在”原作者的帮助下“进行工程的搭建。