头文件和makefile的总结

Makefiel文件:包括工程的编译,连接规则,为程序员提供了自动化的编译功能

//vi makefile

 

CC=gcc

CFLAGS=-g -Wall

LDFLAGG=

src=$(wildcard *.c)

target=$(basename $(src))

all:$(target)

 

.PHONY:clean all

clean:

               rm  -rf  *.o $(tsrget)

 

头文件:把运行程序是需要的头问价总结在一起,可以避免代码的重复写,直接调用 “head.h”,封装起来,使程序更规范化,清晰化

头文件  //vi head.h

#ifndef _HEAD_H_
#define _HEAD_H_

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>
#include <malloc.h>
#include <errno.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/mman.h>
#include <dirent.h>
#include <assert.h>
#include <sys/wait.h>


#define HEAD_DEBUG


#define  error   do\
          {\
            fprintf(stderr,"[%s]:[%d]:%s\n",__func__,__LINE__,strerror(errno));\
            return -1;\
          }while(0)


#ifdef HEAD_DEBUG
#define debug(f,a...)   do\
             {\
               printf("[%s]:[%d] ",__func__,__LINE__);\
               printf(f,##a);\
             }while(0)
#else
#define debug(f,a...)
#endif        


#define DIR_TRUE  1
#define DIR_FALSE 0


#endif

 

上述两个文件,一个makefile 和 head.h 可以在每次写程序的时候,直接调用。方便化!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于多目录和头文件的编译,可以使用Makefile来管理和编译代码。 以下是一个例子: ``` # Makefile # 设置编译器和编译选项 CC = g++ CFLAGS = -Wall -g # 设置源文件目录和头文件目录 SRCDIR = src INCDIR = include # 设置目标文件目录和可执行文件目录 OBJDIR = obj BINDIR = bin # 设置目标文件和可执行文件名称 TARGET = program OBJS = $(OBJDIR)/main.o $(OBJDIR)/func.o # 编译规则 all: $(BINDIR)/$(TARGET) $(BINDIR)/$(TARGET): $(OBJS) $(CC) $(CFLAGS) $(OBJS) -o $@ $(OBJDIR)/%.o: $(SRCDIR)/%.cpp $(CC) $(CFLAGS) -c $< -o $@ -I $(INCDIR) # 清理规则 clean: rm -rf $(OBJDIR)/*.o $(BINDIR)/$(TARGET) ``` 在这个例子中,我们假设有以下目录结构: ``` project/ ├── Makefile ├── include/ │ └── func.h └── src/ ├── main.cpp └── func.cpp ``` 其中,`include/`存放头文件,`src/`存放源文件。使用Makefile编译时,会将编译生成的目标文件放在`obj/`目录中,将可执行文件放在`bin/`目录中。 Makefile中,`SRCDIR`和`INCDIR`分别指向源文件目录和头文件目录。在编译规则中,使用`-I`选项指定头文件目录。`OBJS`中的目标文件路径是相对于`OBJDIR`的。 在编译时,Makefile会按照`SRCDIR`和`INCDIR`中指定的路径查找源文件和头文件。生成的目标文件和可执行文件会放在`OBJDIR`和`BINDIR`中指定的目录中。 使用命令`make`即可编译生成可执行文件。使用命令`make clean`可以清除生成的目标文件和可执行文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值