初学makefile
makefile 需要用到 常用命令、shell、正则表达式、gcc,比较综合。
今天写了一个做一个记录,以后系统总结一下。
目录结构:russia---------include、src、mian.c、Makefile
include-----------russia.h
src-----------------fun1、fun2、fun3、fun4、fun5...Makefile\
Makefile 1:
subobj = ./src/fun1.o ./src/fun2.o ./src/fun3.o ./src/fun4.o ./src/fun5.o ./src/fun6.o
all:main.o SUBDIR
gcc -o main main.o $(subobj)
main.o:main.c
gcc -c main.c
SUBDIR:
make -C src
clean:
rm main.o *.o
Makefile 2:
all:fun1.o fun2.o fun3.o fun4.o fun5.o fun6.o
fun1.o:fun1.c
gcc -c fun1.c
fun2.o:fun2.c
gcc -c fun2.c
fun3.o:fun3.c
gcc -c fun3.c
fun4.o:fun4.c
gcc -c fun4.c
fun5.o:fun5.c
gcc -c fun5.c
MakeFile例子 OBJS = main.o child.o
CC = gcc
FLAGS = -g -O -Wall
CSOURCE = main.c child.c
HSOURCE = btree.h btree : $(OBJS)
$(CC) $(FLAGS) -o $@ $^
%.o : %.c
$(CC) $(FLAGS) -o $@ -c $< clear :
rm *.o btree
注意的问题:
1、只编译不链接,用gcc -c不用-o
2、全局变量放在 .c文件中, ,h中添加外部变量,避免重复声明问题。
初学makefile的更多相关文章
- malefile
什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要 ...
- 自己是个菜鸟 自己查找的简单的适合初学的Makefile
工程中的代码分别存放在add/add_int.c.add/add_float.c.add/add.h.sub/sub_int.c.sub/sub_float.c.sub/sub.h.main.c中. ...
- C Makefile初学基础
# this is make file hello.out: max.o min.o hello.c gcc max.o min.o hello.c -o hello.out max.o:max.c ...
- 简单编写Makefile
相信很多朋友都有过这样的经历,看着开源项目中好几页的makefile文件,不知所云.在日常学习和工作中,也有意无意的去回避makefile,能改就不写,能用ide就用ide.其实makefile并没有 ...
- 如何自己编写Makefile
如何自己编写Makefile 相信很多朋友都有过这样的经历,看着开源项目中好几页的makefile文件,不知所云.在日常学习和工作中,也有意无意的去回避makefile,能改就不写,能用ide就用 ...
- 如何写一个makefile
最近因为编译需求,需要更改一些编译条件,顺带看了一些Makefile相关的知识,介绍的很详细,但是例子很少,拆分的比较零碎.初学的话,确实有点压力,我还是喜欢直接在原有的基础上改一些东西,然后遇到问题 ...
- live555学习(一)通读Makefile编译live555
live555学习(一)通读Makefile编译live555 live555 编译live555 学习开源 live555学习(一)通读Makefile编译live555 前言 live555简介 ...
- Makefile的变量赋值和函数
在Makefile中的定义的变量,就像是C/C++语言中的宏一样,他代表了一个文本字串,在Makefile中执行的时候其会自动原模原样地 展开在所使用的地方.其与C/C++所不同的是,你可以在Make ...
- C语言-Makefile经典教程(掌握这些足够)
makefile很重要 什么是makefile? 或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional 的 ...
随机推荐
- 统计不同的单词(map应用)
题目描述: 输入一些单词,找出所有满足如下条件的单词:该单词不能通过字母重排,得到输入文本中的另一个单词.在判断是否满足条件时,字母不区分大小写,但在输出时应保留输入中的大小写,按字典序进行排列(所有 ...
- PopupWindow 从底部弹出窗体
第一步 : 初始化PopupWindow private void initPop() { if (view == null) { // 照片 view = View.inflate(Registe ...
- tensorflow session会话控制
import tensorflow as tf # create two matrixes matrix1 = tf.constant([[3,3]]) matrix2 = tf.constant([ ...
- nginx manager
====================================================@echo offrem 当前bat的作用 echo ==================beg ...
- hdu1076
#include<iostream> using namespace std; int main() { int cases; int k; cin>>cases; while ...
- vue中v-if 与v-show的区别
v-if vs v-show v-if 是“真正的”条件渲染,因为它会确保在切换过程中条件块内的事件监听器和子组件适当地被销毁和重建. v-if 也是惰性的:如果在初始渲染时条件为假,则什么也不做—— ...
- uWSGI + Nginx + Django 部署
1. uWSGI 服务器 Django 默认使用 WSGI(Python Web Server Gateway ) 作为 Web 服务器,一般仅用来作为测试使用,实际生产环境而是使用 uWSGI 和 ...
- 没有定义json_encode()函数。
php5是没有json扩展的,需要自行下载. 命令php -m 可以查看安装了哪些扩展. 1.修改php.ini 在php.ini 中加入 extension=json.so:sudo vi /etc ...
- VR中运动控制器的传送系统
创建一个VRPawn 新建一个BluePrint,父类选择Pawn,我们命名为VRPawn,打开它. 添加一个Scene命名为CameraRoot 在CameraRoot节点下添加一个Camera 在 ...
- 2019前端面试之html5
html5新增特性 语义化标签 表单新特性 视频和音频canva画布 svg画图 地理位置 为鼠标提供的拖放api webwroker storage websocker 常见块级标签 div,p,h ...