Linux自主学习 - 2

一、vim常用命令

i        编辑模式

:wq   保存并退出

:q      不保存并退出

:w      保存并不退出

y$     复制从当前光标位置到行尾的内容

d$     剪切从当前光标位置到行尾的内容

dd     剪切整行内容

p       光标后粘贴

P       光标前粘贴

二、gcc编译器

gcc常用选项及意义

-E                                                    预处理指定的源文件,不进行编译

-S                                                    编译指定的源文件,不进行汇编

-c                                                    编译、汇编指定的源文件,不进行链接

-I                                                     指定include包含文件的搜索目录

file1 -o file2 -o file2 file1          指定file1经处理后的名称为file2

第一个HelloWorld

1、查看当前工作目录/home/yang/coding下为空

Linux自主学习 - 2_第1张图片

2、使用vim写一个C源程序hello.c

进入vim界面后,按下i键进入编辑模式,vim窗口下方出现“INSERT”字样

编辑完成后,先按ESC键退出编辑模式,然后输入:wq(保存并退出)并回车即可回到终端

Linux自主学习 - 2_第2张图片

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

Linux自主学习 - 2_第3张图片

三、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

#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文件

Linux自主学习 - 2_第4张图片

makefile文件的变量 

makefile文件的变量有三种 :自定义变量、预定义变量、自动变量

三个常用的自动变量

$<     依赖项中第一个依赖文件的名称(包含文件扩展名)

$@   目标文件的名称(包含文件扩展名)

$^     所有依赖文件(去除重复),文件之间以空格间隔

# 使用自动变量的makefile文件内容如下

# 注意!第二行开头不是空格,而是一个Tab键
calc:add.c subtract.c multiply.c divide.c main.c
    gcc $^ -o $@     
# 自动变量只能在规则的命令中使用

你可能感兴趣的:(Linux系统,Linux,gcc,vim)