安装必要的必要的包
sudo apt-get install build-essential
如何运行一个C语言程序
编写C语言程序
编写C语言程序时按照学习到的C语言语法编写即可。
可以选择使用vim编写,也可以选择在文本编辑器中编写。但是推荐使用vim。具体使用方法请自行学习。
编译
make ex1
ex1为你将要运行的以.c为后缀名的文件。
运行
./ex1
运行通过编译生成的.exe文件
删除文件
如果想要删除指定文件,可以使用rm
命令。
例如:
rm ex1
注意这里的ex1指的是可执行文件。
在linux中可执行文件一般没有后缀名,所以直接写文件名即可。
如果要删除ex1的源文件,那么应该
rm ex1.c
打开编译警告
有时可能会遇到代码不完善但是编译器没有报警告的情况,这时候可以将所有编译警告打开重新构建程序。
CFLAGS="-Wall" make ex1
这样就可以看到警告并通过警告修改完善自己的代码啦。
make的使用
在上面我们用到了命令
make ex1
这个命令告诉make,“我想创建名为ex1的文件”。于是Make执行下面的动作:
· 文件ex1存在吗?
· 没有。好的,有没有其他文件以ex1开头?
· 有,叫做ex1.c。我知道如何构建.c文件吗?
· 是的,我会运行命令cc ex1.c -o ex1来构建它。
· 我将使用cc从ex1.c文件来为你构建ex1。
还用到了
CFLAGS="-Wall" make ex1
这命令是一种向make命令传递“修改器”的途径
可以用一条类似于export CFLAGS="-Wall"
的命令来执行相同的事情
在这个例子中我执行了CFLAGS="-Wall" make ex1
,所以它会给make通常使用的cc命令添加-Wall选项。这行命令告诉cc编译器要报告所有的警告(然而实际上不可能报告所有警告)。
Makefile
我创建了一个名为Makefile的文件,在其中输入以下内容:
CFLAGS=-Wall -g
clean:
rm -f ex1
Make会自动假设当前文件夹中有一个叫做Makefile的文件,并且会执行它。
一定要注意:确保只输入了 TAB 字符,而不是空格和 TAB 的混合。
Makefile
展示了make的一些新功能。
首先我们在文件中设置CFLAGS
,所以之后就不用再设置了。
并且,我们添加了-g
标识来获取调试信息。接着我们写了一个叫做clean
的部分,它告诉make如何清理我们的小项目。
尝试运行
$ make clean
$ make ex1
注意不必输入$
可以看到
$ make clean
rm -f ex1
$ make ex1
cc -Wall -g ex1.c -o ex1
再去看一眼Makefile,可以看到在它的下面,我缩进并且输入了一些想要make为我运行的shell命令。
你可以在此处输入任意多的命令,所以它是一个非常棒的自动化工具。
注意
找到rm -f ex1
的那一行并去掉缩进(让它左移),再次运行make clean
,就会得到下面的信息:
$ make clean
Makefile:4: *** missing separator. Stop.
永远记住要缩进,以及如果你得到了像这种奇奇怪怪的错误,应该复查你是否都使用了 TAB 字符。
补充
创建目标all:ex1,以单个命令make构建ex1
例如:
CFLAGS=-Wall -g
all:ex1
clean:
rm -f ex1
也可以通过在all后添加更多的文件名来同时编译多个文件
不要删除Makefile,因为它可以帮你指出错误,以及当我们需要自动化处理一些事情时,可以向它添加新的东西。
更多内容可以参考Makefile基础使用和实战详解
Valgrind介绍
可以用OS上的包管理器来安装Valgrind,也学习如何从源码安装程序。这涉及到下面几个步骤:
· 下载源码的归档文件来获得源码
· 解压归档文件,将文件提取到你的电脑上
· 运行./configure来建立构建所需的配置
· 运行make来构建源码,就像之前所做的那样
· 运行sudo make install来将它安装到你的电脑
# 1) Download it (use wget if you don't have curl)
curl -O http://valgrind.org/downloads/valgrind-3.12.0.tar.bz2
# use md5sum to make sure it matches the one on the site
md5sum valgrind-3.12.0.tar.bz2
# 2) Unpack it.
tar -xjvf valgrind-3.12.0.tar.bz2
# cd into the newly created directory
cd valgrind-3.12.0
# 3) configure it
./configure
# 4) make it
make
# 5) install it (need root)
sudo make install
~~~~~~~ 无论什么时候你运行C程序并且使它工作,都应该使用Valgrind重新运行它来检查。
点击这里可以学习更多内容。