當前位置:首頁 » 編程軟體 » 只編譯一個c文件

只編譯一個c文件

發布時間: 2024-09-28 09:54:39

❶ 涓婃満榪愯屼竴涓猚紼嬪簭鐨4涓姝ラ

涓婃満榪愯屼竴涓狢紼嬪簭鐨勬ラや富瑕佸寘鎷浠ヤ笅鍑犱釜錛


1. 緙栧啓浠g爜錛氶栧厛錛屼綘闇瑕佺紪鍐機紼嬪簭銆備綘鍙浠ヤ嬌鐢ㄤ換浣曟枃鏈緙栬緫鍣錛屽傝頒簨鏈錛孲ublime Text錛屾垨鑰呮洿涓撲笟鐨勯泦鎴愬紑鍙戠幆澧冿紙IDE錛夛紝濡俈isual Studio Code錛孍clipse絳夈備綘鍙闇瑕佹寜鐓C璇璦鐨勮娉曡勫垯緙栧啓浠g爜鍗沖彲銆


2. 淇濆瓨浠g爜錛氬綋浣犲畬鎴愪唬鐮佺紪鍐欏悗錛屼綘闇瑕佸皢鍏朵繚瀛樹負涓涓.c鏂囦歡銆傜『淇濇枃浠跺悕涓庣▼搴忓悕縐扮浉鍖歸厤錛屽苟涓旀枃浠舵墿灞曞悕搴斾負.c銆


3. 緙栬瘧浠g爜錛氭帴涓嬫潵錛屼綘闇瑕佷嬌鐢–緙栬瘧鍣ㄥ皢浣犵殑浠g爜緙栬瘧鎴愬彲鎵ц屾枃浠躲傚湪Windows涓婏紝浣犲彲浠ヤ嬌鐢℅CC鎴朇lang絳夌紪璇戝櫒銆傚湪linux鎴朚ac OS涓婏紝浣犲彲浠ヤ嬌鐢℅CC鎴朇lang鎴栧叾浠朇緙栬瘧鍣ㄣ傚叿浣撶殑緙栬瘧姝ラゅ彲鑳戒細鍥犵紪璇戝櫒鑰屽紓錛屼絾閫氬父浣犲彧闇瑕佸湪鍛戒護琛屼腑杈撳叆緙栬瘧鍛戒護鍗沖彲銆備緥濡傦紝瀵逛簬GCC錛屼綘鍙鑳介渶瑕佽緭鍏ョ被浼糮gcc your_file.c -o your_program`鐨勫懡浠ゃ


4. 榪愯岀▼搴忥細鏈鍚庯紝浣犲彲浠ヨ繍琛屼綘鐨勭▼搴忎簡銆傚湪Windows涓婏紝浣犲彲浠ラ氳繃鍙屽嚮鍙鎵ц屾枃浠舵潵榪愯屽畠銆傚湪Linux鎴朚ac OS涓婏紝浣犲彲浠ヤ嬌鐢ㄧ粓絝鏉ヨ繍琛岀▼搴忋傞氬父錛屼綘闇瑕佽緭鍏ョ被浼間簬`./your_program`鐨勫懡浠ゆ潵榪愯岀▼搴忋


鎷撳睍鐭ヨ瘑錛

榪欏洓涓姝ラょ湅璧鋒潵寰堢畝鍗曪紝浣嗗疄闄呬笂鍙鑳藉瓨鍦ㄤ竴浜涢棶棰樸備緥濡傦紝浣犲彲鑳介渶瑕佺『淇濅綘鐨勭幆澧冨凡緇忔g『閰嶇疆浜咰緙栬瘧鍣ㄣ備綘涔熼渶瑕佷簡瑙e備綍澶勭悊緙栬瘧閿欒鍜岃﹀憡銆傚湪鏌愪簺鎯呭喌涓嬶紝浣犲彲鑳介渶瑕侀槄璇誨拰鐞嗚В鐢熸垚鐨勯敊璇娑堟伅浠ユ壘鍑洪棶棰樻墍鍦ㄣ


鎬葷殑鏉ヨ達紝榪欐槸涓涓鐩稿圭畝鍗曠殑榪囩▼銆


瀵逛簬鍒濆﹁呮潵璇達紝榪欎粛鐒跺彲鑳介渶瑕佷竴浜涙椂闂村拰鑰愬績鏉ユ帉鎻°


鍚屾椂錛屽逛簬鏇村嶆潅鐨勭▼搴忓拰欏圭洰錛屼綘鍙鑳借繕闇瑕佽冭檻濡備綍緇勭粐浠g爜銆佸備綍綆$悊渚濊禆欏廣佸備綍璋冭瘯紼嬪簭絳夐棶棰樸

❷ gcc -g -o -c分別是什麼意思

-c和-o都是gcc編譯器的可選參數。

-c表示只編譯(compile)源文件但不鏈接,會把.c或.cc的c源程序編譯成目標文件,一般是.o文件。-o用於指定輸出(out)文件名。不用-o的話,一般會在當前文件夾下生成默認的a.out文件作為可執行程序。

例如:

gcc -c test.c將生成test.o的目標文件

gcc -o app test.c將生成可執行程序app

gcc -c a.c -o a.o表示把源文件a.c編譯成指定文件名a.o的中間目標文件(其實在這里,把-o a.o省掉,效果是一樣的,因為中間文件默認與源文件同名,只是後綴變化)。

1、如果GCC不帶-C參數,編譯一個源代碼文件(test.c)。那麼會自動將編譯和鏈接一步完成,並生成可執行文件。可執行文件可以有-o參數指定(test.o)

2、如果是多個文件,則需要先編譯成中間目標文件(一般是.o文件),在鏈接成可執行文件,一般習慣目標文件都是以.o後綴,也沒有硬性規定可執行文件不能用.o文件。

(2)只編譯一個c文件擴展閱讀:

gcc:GNU編譯器套件(GNU Compiler Collection)包括C、C++、Objective-C、Fortran、Java、Ada和Go語言的前端,也包括了這些語言的庫(如libstdc++、libgcj等等)。GCC的初衷是為GNU操作系統專門編寫的一款編譯器。GNU系統是徹底的自由軟體。此處,「自由」的含義是它尊重用戶的自由。

基本用法:

-o output_filename,確定輸出文件的名稱為output_filename,同時這個名稱不能和源文件同名。如果不給出這個選項,gcc就給出預設的可執行文件a.out。

-O,對程序進行優化編譯、鏈接,採用這個選項,整個源代碼會在編譯、鏈接過程中進行優化處理,這樣產生的可執行文件的執行效率可以提高,但是,編譯、鏈接的速度就相應地要慢一些。

❸ 怎麼編譯多個c語言文件

1、如果,在一個c主程序中,以include形式包含了其他所有的引用文件,在編譯過程中,編譯器首先會將這些文件合並到一個臨時文件中,然後再對這個臨時文件進行編譯。
2、如果,是作為一個工程,編譯器會分別編譯各個獨立的文件(如果文件中有include按照上一步進行),然後再將編譯好的初步結果用鏈接程序連到一起。
簡單的說,每一個.c或者.cc都是一個編譯單元,每一個編譯單元編輯的結果是一個.o或者obj之類的中間文件,至於是否是多文件,不需要關心,但是要保證不同的編譯單元之間不要有重復的符號,這就是要避免重復包含。
每一個編譯單元生成的目標文件.o或者obj都會引用一些不在本目標文件中的符號,這些符號定義在別的.o或者.obj文件中, 鏈接器把他們聯系在一起,所有的符號也就都有定義了,編譯鏈接簡單說來就是這樣。

❹ c璇璦涓濡備綍鍚屾椂榪愯屽氫釜婧愭枃浠訛紵

鍦–璇璦涓錛屽彲浠ヤ嬌鐢ㄥ氫釜婧愭枃浠舵潵緙栧啓涓涓紼嬪簭銆傚彲浠ュ皢紼嬪簭鍒嗘垚澶氫釜妯″潡錛屾瘡涓妯″潡瀵瑰簲涓涓婧愭枃浠躲傚湪浣跨敤澶氫釜婧愭枃浠舵椂錛屽彲浠ラ噰鐢ㄤ互涓嬩袱縐嶆柟娉曟潵鍚屾椂緙栬瘧鍜岃繍琛屽氫釜婧愭枃浠訛細

灝嗗氫釜婧愭枃浠剁紪璇戞垚涓涓鍙鎵ц屾枃浠
鍦ㄨ繖縐嶆柟娉曚腑錛屽彲浠ヤ嬌鐢ㄤ竴涓鍛戒護灝嗗氫釜婧愭枃浠剁紪璇戞垚涓涓鍙鎵ц屾枃浠躲備緥濡傦紝鍋囪炬湁涓や釜婧愭枃浠秏ain.c鍜宖unc.c錛屽彲浠ヤ嬌鐢ㄤ互涓嬪懡浠ゅ皢瀹冧滑緙栬瘧鎴愪竴涓鍙鎵ц屾枃浠訛細

go

gcc main.c func.c -o program
鍏朵腑錛実cc鏄緙栬瘧鍣ㄧ殑鍛戒護錛宮ain.c鍜宖unc.c鏄婧愭枃浠訛紝-o program鎸囧畾鍙鎵ц屾枃浠剁殑鍚嶇О涓簆rogram銆

灝嗗氫釜婧愭枃浠剁紪璇戞垚澶氫釜鐩鏍囨枃浠訛紝鐒跺悗閾炬帴鎴愪竴涓鍙鎵ц屾枃浠
鍦ㄨ繖縐嶆柟娉曚腑錛屽彲浠ュ厛灝嗗氫釜婧愭枃浠跺垎鍒緙栬瘧鎴愮洰鏍囨枃浠訛紝鐒跺悗鍐嶅皢瀹冧滑閾炬帴鎴愪竴涓鍙鎵ц屾枃浠躲備緥濡傦紝鍋囪炬湁涓や釜婧愭枃浠秏ain.c鍜宖unc.c錛屽彲浠ヤ嬌鐢ㄤ互涓嬪懡浠ゅ皢瀹冧滑鍒嗗埆緙栬瘧鎴愮洰鏍囨枃浠訛細

r

gcc -c main.c
gcc -c func.c
鍏朵腑錛-c閫夐」琛ㄧず鍙緙栬瘧婧愭枃浠訛紝涓嶈繘琛岄摼鎺ャ傜紪璇戝悗浼氱敓鎴愪袱涓鐩鏍囨枃浠秏ain.o鍜宖unc.o銆

鐒跺悗錛屽彲浠ヤ嬌鐢ㄤ互涓嬪懡浠ゅ皢涓や釜鐩鏍囨枃浠墮摼鎺ユ垚涓涓鍙鎵ц屾枃浠訛細

go

gcc main.o func.o -o program
鍏朵腑錛宮ain.o鍜宖unc.o鏄鐩鏍囨枃浠訛紝-o program鎸囧畾鍙鎵ц屾枃浠剁殑鍚嶇О涓簆rogram銆

榪欎袱縐嶆柟娉曢兘鍙浠ュ悓鏃剁紪璇戝拰榪愯屽氫釜婧愭枃浠訛紝鍏蜂綋浣跨敤鍝縐嶆柟娉曞彲浠ユ牴鎹瀹為檯鎯呭喌閫夋嫨銆

❺ linux 驅動 platform 的device和driver 分兩個C文件寫的。若只編譯成一個ko文件,怎麼辦呢

你的兩個文件里有重復的函數所以makefile不成功,上面的意思是叫你去掉其中一個.c里的init_mole函數,再在這個.c文件里添加init_mole函數的外部聲明(就是加上extern 函數返回值init_mole(參數列表),這個總看得懂吧。。?),我不知道你這兩個函數是否相同,這樣做會有什麼影響,

❻ C語言源程序文件經過編譯連接之後生成一個後綴為_____的文件。

如果只生成一個文件,那麼這個題目答案是B。編譯(compile)後生成目標文件,後綴:.obj。也就是機器碼。

然後鏈接器(Linker) 連接生成可執行文件,後綴:.exe。最後運行命令(go),直接運行.exe文件。

(6)只編譯一個c文件擴展閱讀:

簡單講,編譯器就是將「一種語言(通常為高級語言)」翻譯為「另一種語言(通常為低級語言)」的程序。

一個現代編譯器的主要工作流程:源代碼(source code) →預處理器(preprocessor) →編譯器(compiler) →目標代碼(object code) →鏈接器(Linker) → 可執行程序(executables)

高級計算機語言便於人編寫,閱讀交流,維護。機器語言是計算機能直接解讀、運行的。

編譯器將匯編或高級計算機語言源程序(Source program)作為輸入,翻譯成目標語言(Target language)機器代碼的等價程序。

源代碼一般為高級語言 (High-level language), 如Pascal、C、C++、Java、漢語編程等或匯編語言。

而目標則是機器語言的目標代碼(Object code),有時也稱作機器代碼(Machine code)。

對於C#、VB等高級語言而言,此時編譯器完成的功能是把源碼(SourceCode)編譯成通用中間語言(MSIL/CIL)的位元組碼(ByteCode)。

最後運行的時候通過通用語言運行庫的轉換,編程最終可以被CPU直接計算的機器碼(NativeCode)。

❼ 在ubuntu系統中如何用GCC編譯運行一個C程序

1、確定安裝了gcc編譯器後,接下來用vim編輯一個c文件。

熱點內容
java做資料庫 發布:2024-09-28 12:02:37 瀏覽:872
ssid信息如何配置 發布:2024-09-28 11:15:10 瀏覽:814
下載為什麼要鎖屏密碼 發布:2024-09-28 11:10:59 瀏覽:694
圖像雙線性插值演算法 發布:2024-09-28 11:06:31 瀏覽:872
sql怎麼執行存儲過程 發布:2024-09-28 10:44:32 瀏覽:48
ftp伺服器並發數量 發布:2024-09-28 10:19:02 瀏覽:544
只編譯一個c文件 發布:2024-09-28 09:54:39 瀏覽:240
指紋密碼怎麼破 發布:2024-09-28 09:45:11 瀏覽:661
自編自選腳本 發布:2024-09-28 09:45:10 瀏覽:932
androidui教程pdf 發布:2024-09-28 09:44:13 瀏覽:900