Linux下GCC和Makefile实例(从GCC的编译到Makefile的引入)

一、确认已经装好了GCC和Make的软件包

可以使用whereis命令查看:

如果whereis  gcc和whereis  make命令有结果,说明安装了这两个软件,可以继续往下做。

二、使用GCC编译运行一个HelloWorld程序(只涉及单个文件)

可以在任何一个目录编写C程序然后编译运行,我这个实例在自己主目录进行:

然后就进入了编写程序的界面:

按下键盘”i”进入编辑界面,然后输入程序:

按ESC(进入命令行模式),然后输入”:wq”,冒号表示开始输入命令,字母w代表保存文件,字母q代表退出编辑器:

按回车退出vim编辑器,退回到终端,以下是之后的编译运行截图:

三、使用GCC编译运行一个多文件程序(包含主程序和子程序)

这里我们要写两个C程序文件,一个文件里面写个被调函数,另外一个文件中main函数调用第一个文件的函数,如下所示:

ex_display.c的代码如下,同样的写完后ESC然后输入:wq退出:

输入如下的main函数代码:

然后保存退出,如下是编译运行过程:

四、使用Makefile解决多文件编译运行的问题

正如上节的红框框里面所叙述,如果一个程序涉及的文件很多的话,每个都得写出来,很是麻烦,所以Makefile就出现了,请看教程:

进入makefile的编辑界面后,输入如下内容:

然后保存退出,运行make命令:

五、Makefile和shell script方法的对比

有人说,我把之前的所有命令,全写到shell script里面,不就达到Makefile的效果了,没错确实最终效果是相同的,但是Makefile却有这些好处:

  • 简化编译执行的命令(并没有gcc –c的过程)
  • 一次make后,下次只会编译改动的文件,其它的文件不会再编译了

其它还有一些优点,不过这第二个优点,对于大型项目来说,好处太大了!

----------------------------------

转自:http://www.crazyant.net/414.html

时间: 2024-10-25 15:35:42

Linux下GCC和Makefile实例(从GCC的编译到Makefile的引入)的相关文章

Kali Linux下安装配置ProFTPD实例

1,安装ProFTPD 在ftp://ftp.proftpd.org/下可以找到官方发布的各个ProFTPD版本,本人使用ftp://ftp.proftpd.org/historic/source/proftpd-1.3.0a.tar.gz [email protected]:~# wget ftp://ftp.proftpd.org/historic/source/proftpd-1.3.0a.tar.gz [email protected]:~# tar –xf proftpd-1.3.0a

linux下安装codeblocks及写完程序之后编译成功但无法运行的原因

一:在软件中心输入codeblocks,然后点击安装,等着装完就行了. 再按ctrl+alt+t 打开终端 输入 sudo apt-get install gcc 而后再输入sudo apt-get install g++ 最后打开codeblocks写个 helloworld 试试吧. 二:helloworld小程序写完后,也编译通过了,但是却无法运行,那么你再看看保存的地方吧,要是不是保存在linux下的文档了,而是保存在磁盘里的话就是造成不能运行的结果了,更改保存位置试试看呗. 以上仅是我

linux下apache+mysql+php开发环境纯源代码编译搭建

linux下apache+mysql+php开发环境纯源代码编译搭建 记录一下我在fedora core 1下通过源代码编译出来的apache+mysql+php开发环境的全部过程 通常安装一台服务器当然使用rpm是最方便的,不需要考虑太多配置的问题,就可以轻松获得需要的环境了.不过rpm包互相关联的问题也不是这么容易解决. apache,mysql,php这三个应用从源代码编译安装还是比较简单的,配置参数不算复杂,而且没有太多的依赖关系,从源码编译出来的系统也比较稳定一些,方便未来打补丁和升级

Windows/Linux下引用jar包,并用javac/java编译运行

Windows/Linux下引用jar包,并用javac/java编译运行,有需要的朋友可以参考下. 1> Windows 假设要引用的jar放在D:/test目录下,名字为t1.jar, java源文件放在D:/test/src目录下,名字为t2.java. 编译: javac -cp d:/test/t1.jar d:/test/src/t2.java 运行: java -cp d:/test/t1.jar;d:/test/src t2 注意,分号后面没有空格,否则报错. 需要注意的是,如果

Linux下的C的开发之GCC的初级使用

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"><span style="white-space:pre"> </span>Linux下的C开发,可能与win平台的C有点不太一样,但可能不太多,遇到再说吧,我们今天要说的就是GCC的使用技巧(初级的),完全菜鸟级的!!</span>

Linux下dbca创建数据库实例

配置好监听我们可以用dbca创建数据库了首先还是用vnc链接到oracle用户桌面设置环境变量 [[email protected] ~]$ export LANG=en_US 启动dbca安装程序 [[email protected] ~]$ dbca 启动后如图:下一步选择create a database 三种不同的模式第一个是默认的第二个是自定义的第三个是数据仓库学习使用,我们这里选择第一个 设置数据库的名称和sid,这里统一设置成一样,要和前面环境变量设置一致,前面我们设置的是orcl

浅谈Linux下file的应用实例

简介 file的官方解释为: file - determine file type 也就是说可以识别文件类型的意思,也可用来辨别一些文件的编码格式. 实例 下面看几个比较使用的例子. 实例一 :默认 file后直接跟文件,得到如下所示信息 file book.pdf delete.pdf: PDF document, version 1.3 file book delete: PDF document, version 1.3 可以看出加不加后缀都是没有关系的. 实例二:不显示名称  file 

linux下oracle自动创建实例脚本

脚本需要一个参数,即实例的名称,生成配置相关文件后,还会生成一个创建数据库的供sqlplus下运行的脚本语句. 语句会放在运行脚本目录下的一个文件,文件名为: create_database_${sid}.sql. 最后要把create_database_${sid}.sql中的语句拿到sqlplus中运行. 注意: 运行之前请把ORACLE_HOME, ORACLE_BASE这两个环境变量设置正确 注释没怎么写,因为我也不懂有些语句是什么意思 ,只是网上的东西整理了.有问题请指正 素材来自网络

linux下删除oracle11g单实例的方法

方法一:使用oracle自带的runInstaller 卸载: [[email protected] /]$ cd /opt/oracle/product/11.2.0/dbhome_1/deinstall/ [[email protected] deinstall]$ export LANG=en [[email protected] deinstall]$ ./deinstall 方法二:通过删除文件的方式卸载:(即:删除Oracle安装目录下的所有文件和文件夹) ##1.使用SQL*PLU

Linux下GLIBCXX和GLIBC版本低造成的编译错误的解决方案

最近在给编译环境centOS 6.5安装新版clang (clang 3.4/3.5)的时候,虽然已经装了gcc 4.9.1, 但编译的时候(参考clang官方主页http://clang.llvm.org/get_started.html的步骤,在独立build目录下运行clang自带的configure脚本),仍然出了"c compiler cannot create executables"的提示,去查看log信息,发现里面有下面几个错误: clang: /lib64/libc.