linux下C工程层级目录的Makefile编写
来源:互联网 发布:怎样才能恢复手机数据 编辑:程序博客网 时间:2024/05/01 11:34
以前在ubuntu的gcc写小型的测试程序,都是直接调用gcc命令及其选项,突然有想完成稍大的工程的冲动,于是用了下makefile,果然强大。
目录包含 bin src inc lib obj , makefile文件与它们同级,是事先设置好的,以下为源码文件:
exchange.h
#ifndef _EXCHANGE_H_#define _EXCHANGE_H_int exchange(int *xp, int y);#endif
exchange.c
#include "../inc/exchange.h"int exchange(int *xp, int y){ int x = *xp; *xp = y; return x;}
main.c
#include <stdio.h>int main(){ int a = 3; int b = exchange(&a, 4); printf("a = %d, b = %d\n", a, b); return 0;}
Makefile
# 编译变量赋值CC = gccAR = ar rc # 打包生成静态库RM = rm -f#vpath %.h ./inc#vpath %.c ./src# 设置路径变量CUR_DIR = $(shell pwd)BIN_DIR = $(CUR_DIR)/bin/SRC_DIR = $(CUR_DIR)/src/LIB_DIR = $(CUR_DIR)/lib/INC_DIR = $(CUR_DIR)/inc/OBJ_DIR = $(CUR_DIR)/obj/$(BIN_DIR)main.exe : $(OBJ_DIR)main.o $(LIB_DIR)exchange.a $(CC) $(OBJ_DIR)main.o $(LIB_DIR)exchange.a -o $(BIN_DIR)main.exe$(OBJ_DIR)main.o : $(SRC_DIR)main.c $(CC) -c $(SRC_DIR)main.c -o $(OBJ_DIR)main.o$(LIB_DIR)exchange.a : $(OBJ_DIR)exchange.o $(AR) $(LIB_DIR)exchange.a $(OBJ_DIR)exchange.o$(OBJ_DIR)exchange.o : $(SRC_DIR)exchange.c $(CC) -c $(SRC_DIR)exchange.c -o $(OBJ_DIR)exchange.o.PHONY : cleanclean: rm -f ./obj/*.o ./bin/* ./lib/*.a
Makefile文件指定了工程目录中层级文件的依赖关系和目标文件的输出路径。我用path定义文件搜索路径 与 Makefile中路径变量 同时存在时曾出现“make 放弃循环依赖...“的警告,折腾半天时间,最后注销掉vpath命令就好了,不知为什么!
工程目录下载地址
- linux下C工程层级目录的Makefile编写
- Linux下多目录的Makefile编写
- 多目录工程构建Makefile的编写
- Linux相关-------简单工程Makefile的编写
- Linux下makefile的编写
- linux下的makefile 编写
- Linux下makefile的编写
- Linux下Makefile的编写
- linux下makefile的编写
- 【Linux】多文件标准工程目录的Makefile编写及通用模板
- linux下的C语言开发(makefile编写)
- linux下的C语言开发(makefile编写)
- linux下的C语言开发(makefile编写)
- linux下的C语言开发(makefile编写)
- 【转】 linux下的C语言开发(makefile编写)
- linux下的C语言开发(makefile编写)
- linux下的C语言开发(makefile编写)
- Linux下C语言编译基础及makefile的编写
- MFC 对话框 开启 Aero 毛玻璃 半透明 效果 (一)
- 算法基础(3)分治策略之快速排序
- JVM笔记1:Java内存模型及内存溢出
- 进程与线程的一个简单解释
- send()发送结构体
- linux下C工程层级目录的Makefile编写
- 什么是实体类?
- xorl %eax, %eax
- wince Sate210 的调试串口(com3-uart2)改成普通串口
- 导入备份文件到postgre
- 缩小IO/CPU瓶颈:linux平台加速编译速度的几种方法
- 元数据(MetaData)通俗解说
- hdu 2444
- java 算法失精问题