如何編譯由多個c 原始檔組成的專案

2021-08-10 22:19:55 字數 1458 閱讀 2290

在我寫資料結構作業的時候,由於自己寫了一些需要使用的資料結構,所以原始檔有如下幾個:

main.cpp, stack.cpp, stack.h, queue.cpp, queue.h

但是當我在ide中編寫好原始檔,想要自己來編譯的時候,我發現我不會處理多個原始檔的情況,查詢資料後有如下解決方法:

g++

-wall

-g main.cpp stack

.cpp queue

.cpp -o stackout

生成可執行檔案stackout

在g++編譯器中,-wall是允許發出gcc能夠提供的所有有用的警告的引數,-g是告訴g++產生能被gun偵錯程式使用的除錯資訊以便除錯你的程式。具體各個引數的用法在這裡和這裡有詳細說明。

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

即可。

cc = g++  

cflags =

-wall

-gall: clean stack

.o queue

.o main.o stackout

stack

.o : stack

.h

$ $ -c

stack

.cpp

queue

.o : queue

.h

$ $ -c

queue

.cpp

main.o : stack

.h queue

.h

$ $ -c main.cpp

stackout : stack

.o queue

.o main.o

$ $ stack

.o queue

.o main.o -o stackout

clean:

rm -rf

*.o

rm -rf stackout

水平有限,有不對的地方還請指正。

多個原始檔進行編譯,即 makefile 的編寫

makefile的好處是防止原始檔的重複編譯 比如有好多個原始檔,某天對其中乙個原始檔進行修改,如果不寫makefile的話,需要將整個工程的所有檔案重新編譯一遍,非常麻煩,有了makefile,說明了每個原始檔的依附關係,當某個原始檔改變的時候只需重新編譯一下關聯的原始檔就好。例如 有以下檔案 o...

關於C語言多個原始檔編譯成乙個程式

第一次用csdn的部落格,慕名而來,決定好好經營下自己的技術部落格。今天看 c和指標 中第二章程式設計訓練的第一題,就是關於c語言多個原始檔編譯成乙個程式的問題。之前自己一直都不太搞得懂這個,不過之前寫的程式都是簡單的,乙個原始檔就能搞定的那種,所以也一直懶了沒有去學怎麼,心裡隱隱的對學習心的東西感...

c原始檔到執行檔案的編譯過程

源程式 預編譯中間檔案 彙編檔案 目標檔案 可執行檔案.我們平常執行程式時,只是在終端下直接收入gcc test o test 就生成了可執行檔案,或者直接輸入 gcc test生成a.out可執行檔案,其實計算機是做了好幾步工作的.底下我們分解下 第一步 預處理 gcc e test.c o te...