在我寫資料結構作業的時候,由於自己寫了一些需要使用的資料結構,所以原始檔有如下幾個: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...