Makefile的编写

Makefile的编写Makefile的命名MakefilemakefileMakefile的规则规则中的三要素:目标,依赖,命令目标:依赖条件缩进 命令Makefile学习vim makefile app:main.c add.c sub.c mul.c gcc main.c add.c sub.c mul.c -o app:wq make 2. ```makefile 第二个版本 没有改变的代码文件则不需要编译,对命令拆分,分开编译 首先去找依赖,如果在当前目录(或指定目录)找不到依赖文件,则向下查找对应依赖规则,执行命令,最后找到所有依赖,在执行生成最终目标(可执行文...

GDB调试

GDB调试编译携带调试信息的可执行程序gcc编译时加上-g参数 gcc *.c -o myapp -g 因为携带调试信息,带-g参数生成的可执行文件体积会比不带-g参数的大,发布应用的时候一般取消—g参数生成可执行程序。 进入调试 gdb 带-g参数生成的可执行文件使用gdb调试gdb调试start 只执行一步next(n) 继续执行 单步走 跳过函数step(s) 继续执行 单步走 可以进入到函数内部continue(n) 继续执行 直接停在断点位置查看代码list(l)l 行号|函数名l 文件名:行号|函数名字设置断点设置文件断点break(b)b 行号|函数...

静态库与动态库的制作与使用

静态库的制作与使用静态库的制作命名规则lib + 库的名字 + .alibmytest.a制作步骤生成对应的.o文件 --.c -->.o -c参数将生成的.o文件打包 ar工具 ar rcs 生成静态库的名字(libMytest.a) 生成的所有的.ogcc *.c -c -I ../include/ 头文件在include ar rcs libMyCalc.a *.o发布和使用静态库发布的静态库发布头文件使用静态库gcc main.c lib/libMyCalc.a -I include/ -o sum gcc main.c -I include -L lib -l...

GCC编译流程

指定头文件目录gcc xx.c -I 头文件路径 -o 生成可执行程序名指定宏gcc xx.c -o 生成可执行程序名 -D 宏名优化程序gcc xx.c -o 生成可执行程序名 -O[0-3] 分为三个等级 0代表不优化输出警告信息gcc xx.c -o 可执行程序名 -Wall添加调试信息gdbgcc xx.c -o 可执行程序名 -g

在Linux和Windows下安装Boost

Linux安装Boost# 首先删除本地原有的 boost 库 rm -f /usr/lib/libboost* rm -fr 'find / -name libboost*' # 移除boost头文件 mv /usr/include/boost /usr/include/boost-bak # 下载 wget apt-get install wget # 下载Boost库 wget https://dl.bintray.com/boostorg/release/1.71.0/source/boost_1_71_0.tar.gz tar -zxvf boost_1_71_0.tar.gz...

Ubuntu 目录过长修改成当前目录

sudo vim ~/.bashrc if [ "$color_prompt" = yes ]; then PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ ' else PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ' #将小写的w改为W fi