Ubuntu下makefile的简单使用
在Windows下,只需要简单的点击以下make,rebuild即可。而在Linux下,这样的IDE环境并没有提供,难道必须每一步都执行一遍吗?比较ok的做法自然是能够利用批处理脚本来进行操作了,这样,只需要修改脚本中需要编译的文件即可。在Linux下,提供了这么一个方便的工具,make。那么接下来我们来利用make进行程序的组织编译吧。
1. 编写tool.h
#ifndef __TOOL_H
#define __TOOL_H void printInteger(int number); #endif // end of tool.h
2. 编写tool.c
#include "tool.h"
#include "stdio.h" void printInteger(int number)
{
printf("the number is:%d\n",number);
}
3. 编写main.c
#include "tool.h"
#include "stdio.h" int main(int argc, char* argv[])
{
int number;
number=10;
printf("Context-Type:text/html\n\n");
printInteger(number);
return 0;
}
4. 编译链接文件生成可执行文件main
方法1:
命令行中进行编译
4.1.1 编译main.c生成main.o
sudo cc -c main.c
4.1.2 编译tool.c生成tool.o
sudo cc -c tool.c
4.1.3 链接main.o和tool.o生成main可执行文件
sudo cc -o main main.o tool.o
4.1.4 运行main
sudo ./main
方法2:
makefile进行编译链接
4.2.1 编写makefile文件(没有后缀名)
#MakeFile
main: main.o tool.o main.o: main.c tool.h
cc -c main.c tool.o: tool.c tool.h
cc -c tool.c .PHONY:clean
clean:
rm *.o main
4.2.2 运行make进行编译链接
sudo make
4.2.3 运行main
sudo ./main
4.2.4 删除所有.o文件并再次编译
sudo make clean
sudo make
Ubuntu下makefile的简单使用的更多相关文章
- Ubuntu下gcc的简单使用
一直不怎么用gcc,今天看了大神们的笔试题,不得不动手开始写程序了,差距那个大啊. gcc是ubuntu下的终端编译器,可以用来写C.C++的程序,简单用法如下: vim name1.c 先用vim打 ...
- Ubuntu下Iptables的简单运用,开放/关闭端口,禁止/允许IP或IP段访问...
首先添加规则有两个参数:-A和-I,其中-A是添加到规则的末尾:-I可以插入到指定位置,没有指定位置的话默认插入到规则的首部,由于匹配规则是从上往下,依次查找的,可能出现配置的规则冲突导致后续的规则不 ...
- [置顶] 在Ubuntu下实现一个简单的Web服务器
要求: 实现一个简单的Web服务器,当服务器启动时要读取配置文件的路径.如果浏览器请求的文件是可执行的则称为CGI程序,服务器并不是将这个文件发给浏览器,而是在服务器端执行这个程序,将它的标准输出发给 ...
- ubuntu下vim的简单配置
该文章只是进行符合自己习惯的最基本的配置,更加高级的配置请参考更加有含量的博文! 1.打开vim下的配置文件 sudo vim /etc/vim/vimrc 2.在这个文件中,会有这么一句:synta ...
- Ubuntu下搭建tftp服务器最简单方法
今天开始调试ARM的板子,要通过tftp下载到板子上,所以又要配置tftp服务器,真的烦死了… (本人酷爱装系统,所以经常都要搞配置) 因为之前已经在Ubuntu下搭建过很多次tftp服务器了,但是一 ...
- ubuntu下code::blocks编译运行一个简单的gtk+2.0项目
在具体的操作之前,首先需要安装一些必要的软件.ubuntu下默认安装了gcc,不过缺少必要的Header file,可以在命令行中输入下面的指令安装build-essential套件:sudo apt ...
- ubuntu下使用code::blocks编译运行一个简单的gtk+2.0项目
在具体的操作之前,首先需要安装一些必要的软件.ubuntu下默认安装了gcc,不过缺少必要的Header file,可以在命令行中输入下面的指令安装build-essential套件:sudo apt ...
- (转)Ubuntu下用eclipse cdt编写多线程程序的简单设置
在Ubuntu下用eclipse cdt编写了一个多线程程序,但是总是出现pthread_create函数未定义! 查找了下原因,原来是要对eclipse进行一些简单的设置: 右键单击项目->P ...
- ubuntu下minicom安装和简单设置使用
minicom是一个串口通信工具. Ubuntu下的安装: 打开终端 sudo apt-get install minicom即可完成安装. 简单设置使用: 安装完成后第一次启动时运行 sudo mi ...
随机推荐
- Spring Tool Suite记录
快速查询:选中项目名按CTRL+H
- linux下的一些命令的笔记
1.php的扩展是在 php/include/php/ext/下 2.在vi下查找关键字 在vi的命令模式下, 输入/,然后再输入关键字,回车就可以进行查找,按n则会跳到下一个关键字在的位置 3.ph ...
- 基于TDengine-ver-1.6.4.4在windows 10下cmake+msys2编译(windows cgo 使用)
目录 基于TDengine-ver-1.6.4.4在windows 10下cmake+msys2编译(windows cgo 使用) 背景 下载地址 仓库地址 安装部署 msys2 安装 配置环境变量 ...
- 定位布局中关于z-index的一些问题
定位布局中关于z-index的一些问题 使不同父元素的子元素不会被其他父元素遮盖 背景 两父元素相互遮盖(或部分遮盖) html如下 <div class="main"> ...
- javaweb项目添加log4j日志
谈到我们在Java程序中经常用的日志,Log4j应该是耳熟能详了.这里先提下slf4j,英文全名是Simple Logging Facade for Java,直面意思是:Java的简单日志门面.sl ...
- Ubuntu查看cuda和cudnn版本
查看 CUDA 版本: cat /usr/local/cuda/version.txt 查看 CUDNN 版本: cat /usr/local/cuda/include/cudnn.h | grep ...
- Java 中级 学习笔记 1 JVM的理解以及新生代GC处理流程
写在最前 从毕业到现在已经过去了差不多一年的时间,工作还算顺利,但总是离不开CRUD ,我觉得这样下去肯定是不行的,温水煮青蛙,势必有一天,会昏昏沉沉的迷失在温水里.所以,需要将之前学习JAVA 当中 ...
- Spring中Bean的实例化与DI的过程
引言 前文我们介绍了关于如何学习Spring的源码以及解析了spring中加载配置文件注册Beandefinition的过程.今天我们继续学习DI的过程. 创建实例和DI过程 IOC和DI都是对spr ...
- 【一起学源码-微服务】Hystrix 源码三:Hystrix核心流程:Hystix降级、熔断等原理剖析
说明 原创不易,如若转载 请标明来源! 欢迎关注本人微信公众号:壹枝花算不算浪漫 更多内容也可查看本人博客:一枝花算不算浪漫 前言 前情回顾 上一讲我们讲解了Hystrix在配合feign的过程中,一 ...
- element-ui input 组件 回车事件
直接在el-input 标签上添加@keyup.enter="funName" 是不起作用的,在组件中使用需要加上.native. <el-input v-model = & ...