一、vim常用命令
i 编辑模式
:wq 保存并退出
:q 不保存并退出
:w 保存并不退出
y$ 复制从当前光标位置到行尾的内容
d$ 剪切从当前光标位置到行尾的内容
dd 剪切整行内容
p 光标后粘贴
P 光标前粘贴
二、gcc编译器
gcc常用选项及意义
-E 预处理指定的源文件,不进行编译
-S 编译指定的源文件,不进行汇编
-c 编译、汇编指定的源文件,不进行链接
-I 指定include包含文件的搜索目录
-L 指定链接库文件的搜索目录
file1 -o file2 或 -o file2 file1 指定file1经处理后的名称为file2
第一个HelloWorld
1、查看当前工作目录/home/yang/coding下为空
2、使用vim写一个C源程序hello.c
进入vim界面后,按下i键进入编辑模式,vim窗口下方出现“INSERT”字样
编辑完成后,先按ESC键退出编辑模式,然后输入:wq(保存并退出)并回车即可回到终端
3、完成四个阶段,即预处理、编译、汇编、链接,然后运行
或者直接使用gcc hello.c -o hello 或 gcc -o hello hello.c命令完成四个阶段,然后运行
若再精简一些,那就直接使用gcc hello.c,默认输出a.out,然后运行a.out
预处理:gcc -E hello.c -o hello.i
编译: gcc -S hello.i -o hello.s
汇编: gcc -c hello.s -o hello.o
链接: gcc hello.o -o hello
三、makefile文件与make工具
makefile文件的编写
# make命令执行时先在makefile文件中查找各种规则,对各种规则进行解析后运行规则
# 每条规则的语法如下:
target1,target2 ... : dependence1 dependence2 ...
command # 开头不是空格,而是一个Tab键
......
makefile文件的使用
1、在coding目录下编写如下文件:
add.c divide.c head.h main.c makefile multiply.c subtract.c
// head.h
#ifndef _HEAD_H
#define _HEAD_H
int add(int a, int b);
int subtract(int a, int b);
int multiply(int a, int b);
double divide(int a, int b);
#endif
// add.c
int add(int a, int b)
{
return a + b;
}
// subtract.c
int subtract(int a, int b)
{
return a - b;
}
// multiply.c
int multiply(int a, int b)
{
return a * b;
}
// divide.c
double divide(int a, int b)
{
return a / b;
}
// main.c
#include<stdio.h>
#include"head.h"
int main()
{
printf("add %d\n", add(1,1));
printf("sub %d\n", subtract(1,1));
printf("mul %d\n", multiply(1,2));
printf("div %lf\n", divide(3,1));
return 0;
}
# makefile文件内容如下
# makefile中的注释符为#
# 注意!第二行开头不是空格,而是一个Tab键
calc:add.c subtract.c multiply.c divide.c main.c
gcc add.c subtract.c multiply.c divide.c main.c -o calc
2、在coding目录下输入make命令后回车
再使用ls命令查看coding目录下的文件,可以看出已经生成calc文件
3、在coding目录下输入./calc运行calc文件
makefile文件的变量
makefile文件的变量有三种 :自定义变量、预定义变量、自动变量
三个常用的自动变量
$< 依赖项中第一个依赖文件的名称(包含文件扩展名)
$@ 目标文件的名称(包含文件扩展名)
$^ 所有依赖文件(去除重复),文件之间以空格间隔
# 使用自动变量的makefile文件内容如下文章来源:https://www.toymoban.com/news/detail-494664.html
# 注意!第二行开头不是空格,而是一个Tab键
calc:add.c subtract.c multiply.c divide.c main.c
gcc $^ -o $@ # 自动变量只能在规则的命令中使用文章来源地址https://www.toymoban.com/news/detail-494664.html
到了这里,关于Linux自主学习 - 2的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!