国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 編程設計 > 正文

Dev-C++同時編譯多個C或C++文件方法

2020-07-14 12:38:50
字體:
來源:轉載
供稿:網友

Dev-C++同時編譯多個C文件:

考察多源代碼文件程序的編譯及頭文件的使用 :
如果程序的函數(shù) 分別放在不同的程序之中,那就必須是定義常量的#define指令對于每個文件都可用:
定義一個***.h文件,存儲函數(shù)原型和常量定義
需一起編譯的文件添加 #include "***.h"即可

編譯步驟:

1.新建一個C空白工程

2.將需要一起編譯的文件添加至上述新建工程中

3.編譯運行即可,C++同理

C/C++多文件編譯原理

在單文件的情況下(只有一個.h和.c/.cpp)我們只需編譯該文件即可,例如:

$ gcc main.c -o main

但更多的情況下,一個工程需要分開為多個源文件,比如 main.c、a.c、b.c 等,那這種情況下是如何編譯的呢?首先要在 main.c 中調用 a.c 中的方法,必須包含 a.h 頭文件,有了頭文件中的函數(shù)聲明就確保了 main.c 的函數(shù)調用的正確性。好了,現(xiàn)在我們執(zhí)行編譯多文件命令:

$ gcc main.c a.c b.c -o main

整個編譯結果是這樣的:編譯器先把源文件見 main.c a.c b.c 獨立編譯為 main.obj a.obj b.obj 目標文件,然后再把其中要用到的函數(shù)方法鏈接到 main.obj 來,最終打包成可執(zhí)行文件 main,這就是分離編譯和鏈接原理。

如何編譯由多個c++源文件組成的項目

在我寫數(shù)據(jù)結構作業(yè)的時候,由于自己寫了一些需要使用的數(shù)據(jù)結構,所以源文件有如下幾個:
Main.cpp, Stack.cpp, Stack.h, Queue.cpp, Queue.h
但是當我在IDE中編寫好源文件,想要自己來編譯的時候,我發(fā)現(xiàn)我不會處理多個源文件的情況,查找資料后有如下解決方法:

1.在同一語句中同時編譯多個源文件

g++ -Wall -g Main.cpp Stack.cpp Queue.cpp -o StackOut

生成可執(zhí)行文件StackOut

在g++編譯器中,-Wall是允許發(fā)出GCC能夠提供的所有有用的警告的參數(shù),-g是告訴g++產生能被GUN調試器使用的調試信息以便調試你的程序。具體各個參數(shù)的用法在這里和這里有詳細說明。

2.分別編譯多個源文件

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

在編譯單個文件時,我試了一下,順序是任意的。如果我修改了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.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

到此這篇關于Dev-C++同時編譯多個C或C++文件方法的文章就介紹到這了,更多相關編譯多個C或C++文件內容請搜索武林網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持武林網!

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 卢氏县| 马边| 寿宁县| 洛宁县| 广水市| 彭泽县| 石城县| 太湖县| 香河县| 改则县| 岢岚县| 新干县| 兖州市| 轮台县| 唐山市| 盐边县| 临沧市| 聂荣县| 惠水县| 中江县| 海城市| 北川| 马山县| 台前县| 壶关县| 郯城县| 昭苏县| 屏边| 湖口县| 如皋市| 渭南市| 饶阳县| 马龙县| 刚察县| 乌鲁木齐县| 万山特区| 丰县| 祁东县| 桃源县| 淳化县| 荥经县|