Makefile 加入gdb以及不同目录编译
条件:根目录下两个文件夹fun,head
./fun/function.h ./fun/function.c
./head/define.h
./main.c
以下为对应的文件源码,相对比较简单,仅仅起一个抛砖引玉的作用,到时候只需要照搬就行。
function.h
#include <stdio.h> #include <stdlib.h> #include "../head/define.h" void show_hello();
function.c
#include "function.h" void show_hello() { printf("hello world,maxline = %d\n",MAXLINE); }
define.h
#ifndef _DEFINE_H_ #define _DEFINE_H_ #define MAXLINE 1024 #endif
main.c
#include "./fun/function.h" int main() { show_hello(); return 0; }
Makefile
Source = $(wildcard fun/*.c) $(wildcard head/*.c) Source += $(wildcard *.c) Objs = $(Source:%.c=%.o) CFLAGS += -I./fun -I./head CFLAGS += -Wall -g Target = test all:$(Target) $(Target):$(Objs) $(CC) -o $(Target) $(Objs) .PHONY:clean clean: -$(RM) $(Target) $(Objs)
通过以上的makefile可以直接在gdb中调试,希望能帮到大家。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。