在我寫數(shù)據(jù)結(jié)構(gòu)作業(yè)的時(shí)候,由于自己寫了一些需要使用的數(shù)據(jù)結(jié)構(gòu),所以源文件有如下幾個(gè):
Main.cpp, Stack.cpp, Stack.h, Queue.cpp, Queue.h
但是當(dāng)我在IDE中編寫好源文件,想要自己來編譯的時(shí)候,我發(fā)現(xiàn)我不會(huì)處理多個(gè)源文件的情況,查找資料后有如下解決方法:
g++ -Wall -g Main.cpp Stack.cpp Queue.cpp -o StackOut
生成可執(zhí)行文件StackOut
在g++編譯器中,-Wall是允許發(fā)出GCC能夠提供的所有有用的警告的參數(shù),-g是告訴g++產(chǎn)生能被GUN調(diào)試器使用的調(diào)試信息以便調(diào)試你的程序。具體各個(gè)參數(shù)的用法在這里和這里有詳細(xì)說明。
g++ -Wall -g -c Stack.cppg++ -Wall -g -c Queue.cppg++ -Wall -g -c Main.cppg++ -g Stack.o Queue.o Main.o -o StackOut
在編譯單個(gè)文件時(shí),我試了一下,順序是任意的。如果我修改了Stack.cpp,則:
g++ -Wall -g -c Stack.cppg++ -g Stack.o Queue.o Main.o -o StackOut
即可。
CC = g++ CFLAGS = -Wall -g all: clean Stack.o Queue.o Main.o StackOut Stack.o : Stack.h ${CC} ${CFLAGS} -c Stack.cppQueue.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 StackOutclean: rm -rf *.o rm -rf StackOut
水平有限,有不對的地方還請指正。
聯(lián)系客服