欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

makefile怎么写含整个文件夹,makefile文件内容包括哪些

时间:2023-05-08 14:43:28

makefile怎么编绎不同文件夹的.c和.h篇1

有两种方法:一是你修改系统头文件的文件夹路径和你的源文件夹路径。二是你将两个文件复制到系统指定的文件夹中即可。

你用的是TurboC吗?如果是,见下图。如果不是,可以参考着去做。

点击Directories,出现下图:

第一行是.h文件所在的目录,你可以根据实际情况进行修改。

第四行是源文件所在目录,你可以根据实际情况修改。

大家来帮我看看怎样写一个这样的Makefile文件,通过Makefile文件编篇2

以下是一个最简单的多文件+makefile的形式

编译采用gcc你可以修改成你的编译器

三个文件main.cfunc.cmakefile

main.c

#include<stdio.h>

externvoidfunc();//这个应该放在头文件中的比如func.h简单起见就直接声明了

intmain()

{

func();

}func.c

#include<stdio.h>

voidfunc()

{

printf("helloworld\n");

}makefile

.PHONY:allmain.ofunc.o

all:main.ofunc.o

@gccmain.ofunc.o-oout

main.o:main.c

@gcc-cmain.c-omain.o

func.o:func.c

@gcc-cfunc.c-ofunc.o所有的都是最简单的

c文件在不同目录的情况makefile怎么写篇3

c文件在不同目录的情况makefile怎么写

假设有下面几个c++文件:

wherewhen.hwherewhen.c

countdown.hcountdown.c包含了math.h,需要连接库文件

main.c主函数,main.c包含了两个头文件wherewhen.handcountdown.h

1、第一种编译方法:

g++-Wall-gwherewhen.ccountdown.cmain.c-lm-omyprogram

生成可执行文件myprogram

2、第二中编译方法,分别编译各个文件:

g++-Wall-g-cwherewhen.c

g++-Wall-g-ccountdown.c

g++-Wall-g-cmain.c

g++-gwherewhen.ocountdown.omain.o-lm-omyprogram

编写一个makefile文件主要包含哪些内容篇4

一、Makefile里有什么?

Makefile里主要包含了五个东西:显式规则、隐晦规则、变量定义、文件指示和注释。

1、显式规则。显式规则说明了,如何生成一个或多的的目标文件。这是由Makefile的书写者明显指出,要生成的文件,文件的依赖文件,生成的命令。

2、隐晦规则。由于我们的make有自动推导的功能,所以隐晦的规则可以让我们比较粗糙地简略地书写Makefile,这是由make所支持的。

3、变量的定义。在Makefile中我们要定义一系列的变量,变量一般都是字符串,这个有点你C语言中的宏,当Makefile被执行时,其中的变量都会被扩展到相应的引用位置上。

4、文件指示。其包括了三个部分,一个是在一个Makefile中引用另一个Makefile,就像C语言中的include一样;另一个是指根据某些情况指定Makefile中的有效部分,就像C语言中的预编译#if一样;还有就是定义一个多行的命令。有关这一部分的内容,我会在后续的部分中讲述。

5、注释。Makefile中只有行注释,和UNIX的Shell脚本一样,其注释是用“#”字符,这个就像C/C++中的“//”一样。如果你要在你的Makefile中使用“#”字符,可以用反斜框进行转义,如:“\#”。

最后,还值得一提的是,在Makefile中的命令,必须要以[Tab]键开始。

高分求教篇5

在m目录下新建makefile文件

内容:

EXE=target

OBJECT=a.ob.omain.o

CFLAGS=-Ia/-Ib/

VPATH=ab

$(EXE):$(OBJECT)

gcc-o$(EXE)$(OBJECT)

rm-f$(OBJECT)

main.o:a.hb.h

a.o:a.h

b.o:b.h

.PHONY:clean

clean:

rm-f$(OBJECT)

rm-f$(EXE)

总文件目录

m:

a/b/main.cmakefiletarget*

m/a:

a.ca.h

m/b:

b.cb.h

在m目录下执行make命令生成可执行文件target

ps:你的a.c文件内容少了一行

#include<stdio.h>

#include"a.h"

voida()

{

printf("hello!\n");

}

b.c文件内容也少了一行

#include<stdio.h>

#include"b.h"

voidb()

{

printf("everyone.\n");

}

makefile:多个目录下makefile的写法篇6

1、假定.h文件在Header目录里,.c文件在Source目录里,这两个目录文件在Myapp中,Makefile也在Myapp中。

2、Makefile如下。

----------------------------------------------------------------------------------

all:myapp

myapp:main.ob.oc.o

gcc-omyappmain.ob.oc.o

main.o:./Source/main.c./Header/a.h

gcc-c./Source/main.c-I./Header

b.o:./Source/b.c./Header/a.h./Header/b.h

gcc-c./Source/b.c-I./Header

c.o:./Source/c.c./Header/b.h./Header/c.h

gcc-c./Source/c.c-I./Header

clean:

rm-f*.o

------------------------------------------------------------

3、话说回来,这样做太麻烦。

makefile中怎么通配一个文件夹下的所有源文件篇7

据我所知自己写就如你说的“只能一个一个目录的指定如:$(wildcardsrc/*.cpp)?”

发个列子吧胆小精悍:

PROGRAM:=VSIM

SOURCES:=$(wildcard./*.c)

SOURCES+=$(wildcard./src/*.c)

OBJS:=$(patsubst%.c,%.o,$(SOURCES))

CC:=gcc

CFLAGS:=-ggdb-Wall-DBUILD_TIME="\"`date`\""-DDEBUG_

INCLUDE:=-I./simo/inc-I./simo/inc/platform-I./simo/src/decode_encode/RSA-I./simo/src/json/json-c-0.9-I./simo/src/db_interface/ram_db

LIB:=-lpthread-ldl

.PHONY:cleaninstall

$(PROGRAM):$(OBJS)

$(CC)-o[email protected]$^$(LIB)

%.o:%.c

$(CC)-o[email protected]-c$

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。