導航:首頁 > 源碼編譯 > keil編譯出兩個相同的文件

keil編譯出兩個相同的文件

發布時間:2022-04-21 01:35:16

⑴ keil 怎麼同時編譯多個C文件

編好多個c文件,做個.h頭文件,將main函數中需要的程序以類似extern
void
getnum()的格式寫上,然後再main函數中添加include
「*.h」,便可以在main函數中使用其他c文件中定義的函數了。

⑵ keil建立一個工程中有多個程序共同編譯的方法

keil設置里要包含進來,manage components里要設置包含文件

⑶ keil中怎麼在一個工程下使用兩個C文件

LZ問題問得不詳細,回答沒法詳細。
在KEIL中使用2個 C文件,是非常簡單的。比如有一個main.c文件,和一個LCD.c文件,main.c你是如何添加到KEIL 工程中的,LCD.c就用同樣的辦法添加到 KEIL 工程中就行了。
難點不是使用2個C文件,而是在一個C文件中,如何使用另一個C文件的函數、變數等。
多個 C文件的設計,一般稱之為 模塊化設計,一個C文件就為一個設備(模塊)的功能函數(如LCD.c為液晶屏的功能函數)。這種設計的程序結構階級性是非常明顯的,如main.c 可以使用LCD.c的函數,而LCD.c 不可以使用main.c的函數,這就像一個上司可以命令下屬幹活,而一個下屬不能安排上司做事。這C語言中,這叫函數歸屬關系,上級叫 父函數、下級叫 子函數。基於這種歸屬關系,所以,在多個C文件中,只需要在父級函數內,對子函數進行 外部函數聲明(extern xxxxx();),就可以正常使用 子文件中的函數了。
但模塊化設計就是為了方便功能程序(一般主文件 我稱之為 功能程序)的編寫。如果每一個模塊都需要 main.c 在開頭寫一堆的 extern,不僅會導致主文件的程序界面混亂不堪,模塊一多,還容易出錯,增加主文件工作量。於是要求,每一個模塊文件,都必須帶有自己的聲明文件(就是對應的頭文件,如LCD.h)。主文件只需要包含這個模塊的頭文件,就能正常調用 子文件中的功能函數了,這樣才能減少功能文件的程序編寫工作,不僅可以減少出錯率,還能提供程序可讀性。只需查看功能文件內包含的頭文件,就能知道這程序有什麼功能模塊了。

⑷ keil c程序兩個副程序頭文件相同,只能調用一個,頭文件改不了,不知道怎麼解決哪位高手幫下忙,急急急

可以用預處理。就是
#ifndef
#define
#endif
你試試重新建一個頭文件,在頭文件ABC.h
#ifndef ABC_H_
#define ABC_H_
#include "reg51.h"

#include "ABSACC.H"
#endif
然後在兩個程序里包含"ABC.h".
不知道這樣行不行。

⑸ keil一個工程文件下可以放多個.c文件嗎但是編譯時會出現錯誤,怎麼解決

當然可以,但你需要有配套的.h文件讓C文件之間可以互相調用。
例如有1.c和2.c兩個文件,1.c中有個全局變數a,有個函數void b(void),那麼就有1.h這么寫
extern char a;
void b(void);
這樣的話,如果2.c想使用a或函數b的話,在2.c的開頭加一句#include "1.h"就能用了。

⑹ keil 多編譯個文件編譯出錯

出現這個錯誤的原因在於不同的模塊中出現了重復的符號。根據錯誤提示,貌似是你的兩個.c文件里有同名的函數main,消除掉一個就可以了。

⑺ 我的KEIL為什麼一個工程下面有兩個文件,編譯就不成功

你說的項目是獨立的,是不是說這是兩個題目的程序互相之間沒有任何關系,要是這樣的,就必須建立兩個工程,各自進行編譯,是不允許把兩個程序放在一個工程中的。

⑻ keil生成的文件怎麼那麼多,分別是什麼,比如.opt .bak .plg

.plg:編譯器編譯結果
.hex和.bin:可執行文件
.map和.lst:鏈接文件
.o:目標文件
.crf、.lnp、.d和.axf:調試文件
.opt:保存工程配置信息
.bak:工程備份文件

⑼ KEIL 中關於預編譯的問題(重復包含)

「兩個源文件file1.c和file2.c都會將file.h插入進去嗎?」
不會,只插入一次。

「這樣寫不就是為了不重復包含嗎?」
對呀,你不是很明白嗎。

「如果只在兩個當中的一個插入file.h,假設file1.c,那我file2.c中用到了file.h中的函數,不是會出現未定義的錯誤嗎?」
怎麼會呢,此時這個函數對於工程而言已經被定義了呀。

用你的例子給你講解一下。開始編譯以後,假設先編譯file2.c,則file2.c會包含file.h並載入其中的所有聲明以及宏定義,包括#define _FILE_H_;編譯完file2.c後開始編譯file1.c,此時從file2.c會再次包含file.c,但因為_FILE_H_已經定義過,就不會執行判斷條件之後的頭文件內容。通過這樣的方式就能避免重復定義。

⑽ KEIL C51多文件編譯

首先主函數只能存在於一個文件中,這個文件可以直接取名mian.c這樣比較方便管理。然後按功能分其它文件,分別編寫XX.h和XX.c文件,在XX.h中寫入函數的聲明和全局變數的定義,在XX.c中寫函數的具體內容,並且在XX.c中要include「XX.h」,在mian.c中include所有的.h文件。這樣就可以正常編譯和燒寫了。最終生成的還是一個hex文件

閱讀全文

與keil編譯出兩個相同的文件相關的資料

熱點內容
阿里雲伺服器安全組防火牆 瀏覽:194
c語言編譯怎麼打開項目文件 瀏覽:215
數碼of編譯 瀏覽:333
學ug編程好嗎 瀏覽:21
java二進制傳輸 瀏覽:464
中信銀行渠道密碼加密因子未上送 瀏覽:288
網路游戲如何連接伺服器 瀏覽:936
農銀行app怎麼登錄不上 瀏覽:933
西門子plc編程教材 瀏覽:593
加密貨幣樂觀分析 瀏覽:677
方言app有什麼用 瀏覽:768
程序員點贊視頻大全 瀏覽:284
命令的異同 瀏覽:471
加密狗是干什麼工作的 瀏覽:389
centosinit命令 瀏覽:402
三年怎麼算利息怎麼演算法 瀏覽:888
手機拍照根目錄是哪個文件夾 瀏覽:968
小貓爪解壓 瀏覽:612
源碼置入微信小程序 瀏覽:923
如何開一家少兒編程公司 瀏覽:953