makefile编译多个可执行文件
① 如何用makefile编译多个c文件
假设有下面几个c++文件:
wherewhen.h
wherewhen.c
countdown.h
countdown.c
包含了math.h,
需要连接库文件
main.c
主函数,
main.c
包含了两个头文件
wherewhen.h
and
countdown.h
1、第一种编译方法:
g++
-Wall
-g
wherewhen.c
countdown.c
main.c
-lm
-o
myprogram
生成可执行文件myprogram
2、第二中编译方法,
分别编译各个文件:
g++
-Wall
-g
-c
wherewhen.c
g++
-Wall
-g
-c
countdown.c
g++
-Wall
-g
-c
main.c
g++
-g
wherewhen.o
countdown.o
main.o
-lm
-o
myprogram
② UNIX下 用CC如何编译多个c语言源程序文件
用makefile啊,用makefile可以很方便地编译多个源文件的程序。unix下都是用这个的。
③ 如何用一个makefile编译多个目标
假设有下面几个c++文件:
wherewhen.h wherewhen.c
countdown.h countdown.c 包含了math.h, 需要连接库文件
main.c 主函数, main.c 包含了两个头文件 wherewhen.h and countdown.h
1、第一种编译方法:
g++ -Wall -g wherewhen.c countdown.c main.c -lm -o myprogram
生成可执行文件myprogram
2、第二中编译方法, 分别编译各个文件:
g++ -Wall -g -c wherewhen.c
g++ -Wall -g -c countdown.c
g++ -Wall -g -c main.c
g++ -g wherewhen.o countdown.o main.o -lm -o myprogram
④ gcc多文件编译 三个文件:tree.c tree_fun.c tree.h 我怎么把他们编译成一个可执行文件
写一个Makefile文件,如下:
SOURCE = tree.c tree_fun.c
DEST = main
GCC = gcc
FLAGS =
all:
$(GCC) $(SOURCE) $(FLAGS) -o $(DEST)
这样就可以直接make,可以编译这三个文件了,编译成的可执行文件是main
⑤ 编写编译规则文件Makefile,并通过make生成可执行文件
multiple:main.o multiple.o
cc $< -o $@
%.o:%.c
clean:
rm *.o multiple
⑥ 用一个makefile编译出多个文件
使用 .PHONY, 使用方法见下面描述或参考链接. 经过测试可行.
---------
phony 目标可以有依赖关系。当一个目录中有多个程序,将其放在一个makefile 中会更方便。因为缺省目标是makefile 中的第一个目标,通常将这个phony 目标叫做"all",其依赖文件为各个程序:
all : prog1 prog2 prog3
.PHONY : all
prog1 : prog1.o utils.o
cc -o prog1 prog1.o utils.o
prog2 : prog2.o
cc -o prog2 prog2.o
prog3 : prog3.o sort.o utils.o
cc -o prog3 prog3.o sort.o utils.o
这样,使用"make"将可以将三个程序都生成了。d
当一个phony 目标是另一个的依赖,其作用相当于子程序,例如:
.PHONY: cleanall cleanobj cleandiff
cleanall : cleanobj cleandiff
rm program
cleanobj :
rm *.o
cleandiff :
rm *.diff
----------
我测试的Makefile:
OBJS=main.o sub.o
all : test sam
.PHONY:all
test : $(OBJS)
gcc -o test $(OBJS)
sam : sam.o
gcc -o sam sam.o
main.o : main.c sub.h
gcc -c main.c
sub.o : sub.c sub.h
gcc -c sub.c
sam.o : sam.c
gcc -c sam.c
⑦ 怎么通过makefile生成多个可执行文件
all:main1 main2
main1:
gcc -o main1 main1.o
main1.o:main1.c
gcc -c main1.o main1.c
main2:
gcc -o main2 main2.o
main2.o:main2.c
gcc -c main2.o main2.c
最后生成main1 ,main2 2个可执行文件,答案还满意吗?
⑧ 怎么编译三个源文件是它在Ubuntu中可以链接成一个可执行目标文件
在 UNIX/Linux 系统下面,关于编译多个 C 语言源程序(*.c)的方法,可以编写一个 Makefile 文件,该文件是一个文本文件,但是必须要按照一定的规则编写才能够最终生成可执行文件。
⑨ c多个文件如何编译
关于整个 C 语言中的主函数 main( ) 如何调用相关的头文件(*.h)、以及调用其它独立的模块(*.c)的方法,关键在于对于如何编写 makefile 文件的真正理解、以及真正掌握编写规则。
由于我已经有很多年没有编写过 C 语言源程序、以及编写 makefile 文件了,但是可以大概给你提供一个思路就是:
下面的文本文件假设以 my_makefile 为例,编译环境为 Linux 系统,C 语言编译器为 gcc。
但是在这里注意一点:我的 my_makefile 文件中的注释语句是否是分号进行注释,我已经不太记得了,这个需要自己再参考一下。
另外就是:对源文件(*.c)、以及生成可执行文件(my_runfile)在 my_makefile 文件中的前后次序,我也记不清了,仅供参考。
myprog1.o: myprog1.c ; myprog1.o 的生成依赖于 myprog1.c 这个源程序
gcc -c myprog1.c ; 使用 Linux 系统的 C 语言编译器对 myprog1.c 只编译、不链接
myprog2.o: myprog2.c ; myprog2.o 的生成依赖于 myprog2.c 这个源程序
gcc -c myprog2.c ;使用 Linux 系统的 C 语言编译器对 myprog2.c 只编译、不链接
my_runfile: myprog1.o myprog2.o ; 可执行文件 my_runfile 的生成依赖于 myprog1.o、myprog2.o 这两个目标文件
gcc -o my_runfile myprog1.o myprog2.o ; 使用 cc 的 -o 选项生成用户自定义的可执行文件:my_runfile,如果不指定 -o 选项,cc 编译器生成的缺省可执行文件名为:a.out
运行命令为:
$make -f my_makefile (使用 -f 选项代替缺省的 make 文件名 makefile)