1、gcc编译过程
.c通过编译生成.o文件,.out目标文件进过链接生成.so库文件。
2、在C++中可以使用system(("mkdir -p "+path).c_str())创建目录。c_str()把string转化为c字符串,便于system命令识别,system命令会新启动一个进程来创建文件夹,创建结束后自动关闭进程,继续执行后续命令。如果目录已经存在,不会报错,会忽略本次操作。
3、
./:代表目前所在的目录。
. ./:代表上一层目录。
/:代表根目录。
~:代表用户目录
-:代表上次操作目录
4、如果在源代码中包含#include<cmath>,某些不默认包含数学标准库的系统,在编译时访问数学库需要在编译指令中加-lm选项。
5、linux中最常见的编译器是g++,GNU C++编译器。
6、linux系统中有静态库和动态库两种类型,静态库是在编译时被链接到可执行文件的库。它们的代码被复制到可执行文件中,使得所有的依赖在运行时都不需要外部库的支持。静态库的文件通常以.a结尾。动态库是运行时被加载到内存中的库,它们的代码可以被多个可执行文件共享,可以通过在运行动态加载或链接到可执行文件中。动态库通常以.so结尾。
7、compile是指将源代码转换为机器可执行二进制代码的过程。make是一个GNU提供的工具,根据规则执行必要的编译和链接操作,会对C++代码执行严格的参数检查,帮助管理和执行编译过程。
8、gdb单步调试相关命令:
gdb:启动gdb调试器
break a.cpp:20 在a.cpp文件的20行打断点
run:执行程序
n:执行下一行
p:打印变量
9、Linux和android的不同,主体不同:linux系统:是一套免费使用和自由传播的类UNIX操作系统。安卓:是一种基于Linux的自由及开放源代码的操作系统。架构不同:linux系统:主要受到Minix和Unix思想的启发,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。能运行主要的Unix工具软件、应用程序和网络协议。安卓:Android的系统架构和其操作系统一样,采用了分层的架构。Android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和Linux内核层。
10、Linux系统优势:开源、免费;跨平台的硬件支持,由于Linux 的内核大部分是用 C 语言编写的,并采用了可移植的Unix标准应用程序接口,所以它支持如i386、Alpha、AMD和Sparc等系统平台,以及从个人电脑到大型主机,甚至包括嵌入式系统在内的各种硬件设备;丰富的软件支持,包含了多种程序语言与开发工具,如gcc、cc、C++、Tcl/Tk、Perl、Fortran77 等;多用户多任务,作为类Unix 系统,Linux 和 Unix 一样,是一个真正的多用户多任务的操作系统。多个用户可以各自拥有和使用系统资源,即每个用户对自己的资源(例如:文件、设备)有特定的权限,互不影响,同时多个用户可以在同一时间以网络联机的方式使用计算机系统。多任务是现代计算机的最主要的一个特点,由于Linux系统调度每一个进程是平等地访问处理器的,所以它能同时执行多个程序,而且各个程序的运行是互相独立的;可靠的安全性;良好的稳定性;完善的网络功能。