编程环境¶
Linux 系统终端中常用的文件与目录操作命令¶
-
ls:列出当前目录中的文件和子目录
ls
-
pwd:显示当前工作目录的路径
pwd
-
cd:切换工作目录
cd /path/to/directory
-
mkdir:创建新目录
mkdir directory_name
-
rm:删除文件或目录
rm file_name
rm -r directory_name # 递归删除目录及其内容
-
编译
在命令行下输入
g++ a.cpp
就可以编译a.cpp
这个文件了编译过程中可以加入一些编译选项:
-
-o <文件名>
:指定编译器输出可执行文件的文件名。 -
-Wall
:显示所有编译警告信息。
g++ a.cpp -o a
-
在命令行下输入 g++ a.cpp
就可以编译 a.cpp
这个文件了(Windows 系统需提前把编译器所在目录加入到 PATH
中)。
编译过程中可以加入一些编译选项:
-
-o <文件名>
:指定编译器输出可执行文件的文件名。 -
-g
:在编译时添加调试信息(使用 gdb 调试时需要)。 -
-Wall
:显示所有编译警告信息。
Linux 系统下常见文本编辑工具的使用¶
无介绍。
g++、gcc 等编译器与相关编译选项¶
-fsanitize=addres
神器,注意它会影响程序运行效率。
在 Linux 系统终端中运行程序,使用 time 命令查看程序用时¶
一般在 Bash 中直接使用 time
调用的是 Bash 内建的版本,我们可以使用 TIMEFORMAT
环境变量控制其输出格式,例如将其设为 %3lR
即可输出三位精度的实际运行时间,%3lU
即可输出三位精度的用户空间运行时间。
调试工具 GDB 的使用¶
编译命令¶
-static
此选项将禁止使用动态库,所以,编译出来的东西,一般都很大,也不需要什么动态连接库,就可以运行。
-fsanitize=address,leak,undefined,signed-integer-overflow
必备的好吧,但是会和static冲突,所以不能一起用。最后测试时记得先用-fsanitize检查,后用-static测试。
‐O2 ‐std=c++14 ‐static
测试标准命令
Windows编译常见问题¶
-
数组开太大会导致在线ide发生RE错误
-
如果在进入main()之前就发生了死循环,请考察是否爆栈
DevC++中
工具→编译选项,在编译时加入以下指令处打上勾,同时加入以下代码
-Wl,-stack=134217728