作者:爱塔居
作者简介:大四学生,分享自己的学习片段~
目录
前言
一、创建主要文件
二、makefile
前言
多有不足,以供参考,欢迎大佬们指点。我是在虚拟机上执行的,应该都一样。我用的VirtualBox,然后找到terminal运行(不需要跟我一样)
最开始是这个界面:
首先了解一下基础linux命令:
vboxuser@Myvirtual:~$ vi hello.c
(第一个语句里面就可以编写代码了。点击esc,点击i,后开始写,写完esc,输入 “:wq”,就能保存)vboxuser@Myvirtual:~$ gcc hello.c -o hello -Wall
vboxuser@Myvirtual:~$ ./helloctrl+z 可以强制退出运行
修改文件还是一样用vi
然后删除文件用 rm
ls 是查看当前目录所有文件
cd + 文件夹名 是进入当前文件
简单了解一下,我们就可以学用makefile方式进行写代码了
一、创建主要文件
①首先
vi test1.c
进入test1.c文件
#include <stdio.h>
#include "test1.h"
int get_line(char s[], int lim)
{
int c, i;
int j;
j = 0;
for (i = 0;(c=getchar()) != EOF && c != '\n'; ++i)
{
if (i < lim - 2)
{
s[j++] = c;
}
}
if (c == '\n')
{
s[j++] = c;
++i;
}
s[j] = '\0';
return i;
}
如果只是复制,就不用点esc了,直接
:wq
②创建main_test1.c文件
vi main_test1.c
#include "test1.h"
#include <stdio.h>
#define MAXLINE 1000//宏定义的语句要放在头文件后面
int main()
{
int len; /* 当前行长度 */
int max; /* 目前为止发现的最长行的长度 */
char line[MAXLINE]; /* 当前的输入行 */
max = 80;
while ((len = get_line(line, MAXLINE)) > 0)
{
if (len > max)
{
printf("%s", line);
}
}
return 0;
}
一样操作保存退出。
③创建test1.h文件
#ifndef TEST1_H//有#的那三行是为了避免头文件重复引入和重复定义加的
#define TEST1_H
int get_line(char [], int);
#endif
二、makefile
创建一个makefile文件
test1:test1.c test1.h main_test1.c
gcc -Wall test1.c main_test1.c -o test1
写完保存退出。
输入如下代码后回车:
make test1
如果没有报错,那就非常完美了!!!那就可以编译了。
./test1
然后就可以运行了。