在我写数据结构作业的时候,由于自己写了一些需要使用的数据结构,所以源文件有如下几个:
Main.cpp, Stack.cpp, Stack.h, Queue.cpp, Queue.h
但是当我在IDE中编写好源文件,想要自己来编译的时候,我发现我不会处理多个源文件的情况,查找资料后有如下解决方法:
1.在同一语句中同时编译多个源文件
g++ -Wall -g Main.cpp Stack.cpp Queue.cpp -o StackOut
生成可执行文件StackOut
在g++编译器中,-Wall是允许发出GCC能够提供的所有有用的警告的参数,-g是告诉g++产生能被GUN调试器使用的调试信息以便调试你的程序。具体各个参数的用法在这里和这里有详细说明。
2.分别编译多个源文件
g++ -Wall -g -c Stack.cpp
g++ -Wall -g -c Queue.cpp
g++ -Wall -g -c Main.cpp
g++ -g Stack.o Queue.o Main.o -o StackOut
在编译单个文件时,我试了一下,顺序是任意的。如果我修改了Stack.cpp,则:
g++ -Wall -g -c Stack.cpp
g++ -g Stack.o Queue.o Main.o -o StackOut
即可。
3.编写Makefile文件
CC = g++
CFLAGS = -Wall -g
all: clean Stack.o Queue.o Main.o StackOut
Stack.o : Stack.h
${CC} ${CFLAGS} -c Stack.cpp
Queue.o : Queue.h
${CC} ${CFLAGS} -c Queue.cpp
Main.o : Stack.h Queue.h
${CC} ${CFLAGS} -c Main.cpp
StackOut : Stack.o Queue.o Main.o
${CC} ${CFLAGS} Stack.o Queue.o Main.o -o StackOut
clean:
rm -rf *.o
rm -rf StackOut
水平有限,有不对的地方还请指正。
|