linuxmakefile编译多个⽂件,linuxmakefile编译多个.c⽂件实例本例由 main.c  add.c sub.c add_sub.h 四个⽂件组成:编写Makefile执⾏程序
/*************************************************************************
> File Name: main.c
> Author:
> Mail:
> Created Time: Tue 25 Jul 2017 10:40:22 AM CST
************************************************************************/
#include
#include"add_sub.h"
int main()
{
printf(" 2 + 3 = %d\n", add(, ));
printf(" 2 - 3 = %d\n", sub(, ));
return ;
}
/*************************************************************************
> File Name: add.c
> Author:
> Mail:
> Created Time: Tue 25 Jul 2017 10:36:26 AM CST
************************************************************************/
#include "add_sub.h"
linux下gcc编译的四个步骤int add(int a, int b)
{
return a + b;
}
/*************************************************************************
> File Name: sub.c
> Author:
> Mail:
> Created Time: Tue 25 Jul 2017 10:37:54 AM CST
************************************************************************/
#include "add_sub.h"
int sub(int a, int b)
{
return a - b;
}
/*************************************************************************
> File Name: add_sub.h
> Author:
> Mail:
> Created Time: Tue 25 Jul 2017 10:38:53 AM CST
************************************************************************/
#ifndef _ADD_SUB_H
#define _ADD_SUB_H
int add(int a, int b);
int sub(int a, int b);
#endif
Makefile的内容:
我们可以把这个内容保存在⽂件为“Makefile”或“makefile”的⽂件中,然后在该⽬录下直接输⼊命令“make”,就会在当前⽬录下名字叫“Makefile”或“makefile”的⽂件,可以⽣成执⾏⽂件main。
main: add.o sub.o main.o
gcc add.o sub.o main.o -o main
add.o: add.c add_sub.h
gcc -c add.c -o add.o
sub.o: sub.c add_sub.h
gcc -c sub.c -o sub.o
main.o:main.c add_sub.h
gcc -c main.c -o main.o
clean:
rm -rf *.o main
⽣成⽅法必须以TAB开头;若尝试⽤空格缩进会出现错误!
实验结果:
如果要删除执⾏⽂件和所有的中间⽬标⽂件,那么,只要简单地执⾏⼀下“make clean”就可以了。
Linux Makefile 编译速度的优化【转】
linux下编译⾃⼰的库⽂件实践
有了我传的那个资料,这个就没什么⽤了,那个太经典了,这个就是记录我⾃⼰的实践.:-) linux下⽂件的类型是不依赖于其后缀名的,但⼀般来讲:.o,是⽬标⽂件,相当于windows中的.obj⽂件.s ...
Linux makefile教程之更新函数库⽂件⼗[转]
使⽤make更新函数库⽂件 ——————————— 函数库⽂件也就是对Object⽂件(程序编译的中间⽂件)的打包⽂件.在Unix下,⼀般是由命令"ar"来完成打包⼯作. ⼀.函数 ...
很详细、很移动的Linux makefile教程:介绍,总述,书写规则,书写命令,使⽤变量,使⽤条件推断,使⽤函数,Make 的运⾏,隐含规则 使⽤make更新函数库⽂件 后序
很详细.很移动的Linux makefile 教程 内容如下: Makefile 介绍 Makefile 总述 书写规则 书写命令 使⽤变量 使⽤条件推断 使⽤函数 make 的运⾏ 隐含规则 使⽤m ...
【Linux学习】 写⼀个简单的Makefile编译源码获取当前系统时间
打算学习⼀下Linux,这两天先看了⼀下gcc的简单⽤法以及makefile的写法,今天是周末,天⽓闷热超市,早晨突然发现住处的冰箱可以⽤了,于是先出去吃了点东西,然后去超市买了⼀坨冰棍,⽼冰棍居多, ...
linux 下C语⾔编程库⽂件处理与Makefile编写
做开发年了,在linux下编译安装软件算是家常便饭了.就拿gcc来说,都有不下10次了,可基本每次都会碰到些奇奇怪怪的问题.看来还是像vs.codeblocks这样的ide把⼈弄蠢了.便下定决⼼⼀ ...
Linux Makefile⽂件编写详细步骤与实践
Linux Makefile⽂件编写详细步骤与实践 1.makefile概述 Windows环境下IDE会帮你完成makefile⽂件的编写,但在UNIX环境下你就必须⾃⼰写makefile了,会不会 ...
Linux 内核模块编译 Makefile
驱动编译分为静态编译和动态编译:静态编译即为将驱动直接编译进内核,动态编译即为将驱动编译成模块. ⽽动态编译⼜分为两种: a -- 内部编译 在内核源码⽬录内编译 b -- 外部编译 在内核源码的⽬录 ...
在linux命令⾏中编译和运⾏java⽂件
同时加载编译多个jar包和java⽂件 在个⼈平常使⽤或者当我们把代码部署到linux服务器上的时候,我们经常需要通过命令⾏编译和运⾏java ⽂件,⽹上关于这个的⽅法⼤多是通过 javac -cp f ...
随机推荐
MSP430FR5739串⼝程序
今天急着⽤这个⽚⼦的串⼝,匆忙中调试串⼝也话费了⼀段时间,在⽹上下了⼀个程序,忽然就把所有问题搞清楚了,只是中断就看着头⽂件中寄存器写的,虽然通讯正常,不过不确定有没有写错.代码如下: #includ ...
bss 概念
BSS段 在采⽤段式内存管理的架构中,BSS段(bss segment)通常是指⽤来存放程序中未初始化的全局变量的⼀块内存区域.BSS是英⽂Block Started by Symbol的简称.BSS ...
C# 利⽤反射动态调⽤类成员
⽤反射动态调⽤类成员,需要Type类的⼀个⽅法:InvokeMember.对该⽅法的声明如下(摘抄于MSDN): publicobject InvokeMember(
string name, ...
Linux makefile 课程 ⾮常具体的,和理解
最近的⼀项研究Linux根据C计划,我买了⼀个电话阅读makefile这使他看起来困惑,我可能⽆法理解. 于是google到了下⾯这篇⽂章. 通俗易懂. 然后把 ...
Tomcat剖析(三):连接器(1)
Tomcat剖析(三):连接器(1) 1. Tomcat剖析(⼀):⼀个简单的Web服务器 2. Tomcat剖析(⼆):⼀个简单的Servlet服务器 3. Tomcat剖析(三):连接器(1) 4 ...
关于并⾏计算的Scan操作
simple and common parallel algorithm building block is the all-prefix-sums operation. In this chapte ...
Intent的概念及应⽤(⼀)
------siwuxie095 1.显式Intent (1)先创建⼀个项⽬:LearnIntent,选择API:21 Android 5.0, 选择Empty Activity,完成 (2)创建⼀个 ...
ReactiveSwift框架
最近项⽬不多,所以就研究了⼀下RxSwift和RAS,RAC以前项⽬中⽤过了,在这⾥我就先简单的介绍⼀下什么是RAS.总述:在RAC 5.0这个版本,有了很⼤的改动,API已经重新命名.在和Swift ...
C# 传统四舍五⼊保留两位⼩数(⽹上流传好多错误的版本)
关于C#⾥⾯的Math.Round,很多⼈都会⽤到,⽽且以为是四舍五⼊,其实不是这样的: C#⾥⾯的Math.Round是符合IEEE标准的“四舍五⼊”,其实是五舍六⼊. ⽹上好多流传的下⾯这种⽅式实 ...
App测试的策略
(⼀).App测试的策略 1.App测试需要考虑的⽅⾯    设备多样性    操作系统.浏览器.应⽤程序运⾏时环境.屏幕分辨率.⼈机交互界⾯和接⼝.⼈体⼯程学设计.屏幕尺⼨等    运营商⽹络 ...

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。