導航:首頁 > 源碼編譯 > 多個c文件條件編譯

多個c文件條件編譯

發布時間:2024-04-04 02:41:00

A. 請問vc++6.0環境下怎麼實現多文件c程序的編譯和連接

一般是這樣,每個文件要配一個頭文件,把函數和變數的聲明放在頭文件。然後在源文件里包含頭文件。在主函數文件里包含所有頭文件

B. 如何用在windows的cmd編譯多個c源文件

命令行編譯
linux系統下:g++ prog1.cc -0 prog1,echo $?查看返回值結果。
windows系統下:cl –GX prog1.cpp,自動產生與源文件同名的exe文件,echo %errorlevel%查看返回值結果。
多個源文件編譯:
linux系統下:gcc –c prog1.cc //output prog1.o object file
gcc –c prog2.cc //output prog2.o object file
gcc prog1.o prog2.o //generate executable file prog1.exe or prog1.out
//above is complied step by step, now we can also compile once
gcc –c –g prog1.cc prog2.cc –o prog1.exe
windows系統:與linux系統整體過程類似,只是命令不同罷了
cl –c prog1.c //output prog1.obj object file
cl –c prog2.c //output prog2.obj object file
gcc prog1.obj prog2.obj //generate executable file prog1.exe or prog1.out
//above is complied step by step, now we can also compile once
cl –GX prog1.c prog2.c
cl 不是內部或外部命令 解決辦法:確保已經安裝vs,在控制台中鍵入set查看環境變數,看是否有類似VS??COMNTOOLS的環境變數,若沒有則在系統環境變數中新建一個環境變數VS??COMNTOOLS,變數值為vs安裝目錄\commom7\tools\。然後在控制台中鍵入
call 「%VS??COMNTOOLS%」vsvars32.bat設置cl運行時的環境變數。

C. vscode C語言如何編譯多個源文件

你可以寫一個類似的任務在task里:在args一行,寫你需要編譯的文件
{
"label": "build my project",
"type": "shell",
"command": "C:\\MinGW\\bin\\g++.exe",
"args": ["main.cpp", "test.cpp", "-o", "test.exe"],
"group": "build",
},
你還可以寫一個make任務,對於文件多的,手寫不現實,可以做一個makefile
這樣你只要在launch裡面
preLaunchTask,寫上這個build my project,就可以了。

D. keil如何打開多個點c並完整編譯

點擊全局編譯按鈕
,完成後在相應目錄文件夾(之前存放hex文件的路徑)下即可看到生成的ethernet.lib文件。知鋒
6、lib文件生成後,還需.h文件,h文件有兩種方式,一種是保留之前.c文件對應的.h文件,繼續照常使用,另一種是可將單獨的.h文件合並成一個新的ethernet.h,直接在main.c調用ethernet.h即可。
7、將lib文件剪切放到Ethernet文件路徑下,將之前的socket.c、w5500.c等文件刪除掉,頭文件換成ethernet.h,工程里將ethernet.lib加攔辯入到group(ethernet文件夾)里。
8、將取消編譯的文件重新打開,將編譯後文件類型改回.hex文件,然後全編譯,沒有錯誤即完成。

另外,若想將一個.c文件生成一個lib文件,只需保留該.c文件進行編譯,.h文件也保持不變,將工程中原先的.c文件替換成.lib文件即可。

用心寫好每篇文章,分享給需要的你☺,如果對您有用希望能留下您的腳印(點贊/評論/收藏)!

stm32
c語言
keil mdk
嵌入式
注意!注意!你有一個手機待領取
巨摩互動
廣告

Keil對lib封裝庫反匯編成C語言.pdf
502下載·22評論
2013年5月6日
把c++的exe工程編譯為動態庫dll靜態庫lib,並實現調用(超詳細)
2087閱讀·0評論·1點贊
2020年8月28日
源代碼封裝成庫Lib的方法
504閱讀·0評論·0點贊
2022年10月14日
STM32/keil把多個c文件編譯為簡猛缺靜態庫lib
2190閱讀·0評論·6點贊
2021年1月5日
C/C++ 靜態庫(lib)的概念和使用方法
3432閱讀·0評論·4點贊
2022年5月2日
Keil 下生成LIB庫文件以及如何使用LIB庫文件
732閱讀·1評論·0點贊
2020年12月19日
注意!注意!你有一個手機待領取
巨摩互動
廣告
C語言 之 編譯自己的lib庫
1457閱讀·0評論·1點贊
2020年8月7日
CMake交叉編譯簡單教程
3.2W閱讀·2評論·14點贊
2018年9月7日
如何將c語言封裝成dll文件,封裝動態庫dll與靜態庫lib(原理及簡單實例)
2069閱讀·0評論·1點贊
2021年5月21日
keil C對lib封裝庫反匯編成C語言,Keil軟體「C語言」及「匯編」混編 —— 相關知識整理.doc...
1587閱讀·0評論·0點贊
2021年5月21日
keil 加密:編譯代碼成lib庫
454閱讀·0評論·0點贊
2022年7月28日
Keil C 裡面Lib庫文件的生成與調用
11下載·0評論
2020年8月4日
keil C對lib封裝庫反匯編成C語言
101下載·4評論
2011年4月8日
C語言編譯lib庫手動添加
1888閱讀·0評論·0點贊
2017年6月18日
基於Keil下多文件打包生成Lib庫文件的具體操作
2667閱讀·3評論·2點贊
2020年1月18日
Windows DOS命令行編譯C/C++程序----庫文件.lib的鏈接
1752閱讀·0評論·0點贊
2019年2月21日
keil把源代碼生成lib的方法
2754閱讀·0評論·6點贊
2022年1月25日
keil 編譯生成 .lib文件
2244閱讀·4評論·1點贊
2018年1月8日
keil多文件編譯
724閱讀·0評論·1點贊
2022年4月3日
在keil中將文件封裝為lib庫文件需要注意的地方
1395閱讀·0評論·0點贊
2021年11月15日
去首頁
看看更多熱門內容
評論1

YJer


你好,第6點中提到的,將單獨的.h文件合並成一個新的ethernet.h,

E. 如何在VS2010中編譯多個C語言源文件

要知道,一個系統生成的程序文件夾里,只可能有一個源程序,打開兩個必然會沖突啊。
你可以打開兩個VS來進行對兩個源程序的編譯。

F. 如何編譯C文件

編譯C文件用GCC。
編譯C文件常用方法:
單個文件:
g++
file.cpp
這是最簡單形式,預設輸出為a.out,可以用-o命令指定輸出文件,比如g++
file.cpp
f.out
多個文件:
g++
-c
1.cpp
-o
1.o
g++
-c
2.cpp
-o
2.o
g++
1.o
2.o
-o
prog.out
鏈接成可執行文件:
一般用g++
-o
file
file.cpp
多個文件是g++
-o
file
file1.cpp
file2.cpp
...
編譯C++不是用GCC而是G++.
如果用GCC能編譯但不能鏈接.
多個文件:
1.編譯多個文件,但不連接:
g++
file1.cpp
file2.cpp
會生成兩個文件:file1.o,
file2.o
2.連接:
g++
-o
outFileName
file1.o
file2.o
會生成一個可執行文件:outFileName。
如果想,一步就完成編譯和連接,那麼:
g++
-o
outFileName
file1.cpp
file2.cpp
-o選項控制是否連接。

G. c ++裡面有多個源文件怎麼編譯

1。點擊「文件」菜單按鈕,選擇「新建」;
2。在「工程」選項中選擇「Win32 Console Application」,然後輸入工程名稱;
3。不急著按確定,選旁邊的「文件」的選項卡,然後選「C++Source File」,輸入文件名(以.c結束例如: sort.c)按確定;
4。在後綴為.c的文本編輯框內輸入源代碼;
5。在文本編輯框右上有一些六個小圖標,compile(滑鼠久放這些圖標上都會出現這些圖標的名字),build,go等,從最左邊一個圖標(compile)按起,彈出對話框都按確定,一個圖標OK就按下一個,最後一個是go吧,不是很記得了,可是ok都會出現DOS的對話框。
ok就這樣了~多的我也不會~有些是分頭文件(Header File)和源文件(Source File),那在第二步的時候就要注意是選「C++Source File」還是「C++Header File」了!

當然也可以直接選「C++Source File」或「C++Header File」了! 要注意CPP是C++文件的後輟 .C是C語言的後輟

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

要想把多個C程序同時編譯
1.主函數里要有對其他C程序里的所有函數的聲明。(也可以用.h文件來聲明並在主函數里include "*.h" *代表h文件文件名)
2.在keil工程里要添加所有.c文件

I. C 語言中多文件編譯的問題

第一個問題
請問,我是不是該這樣做:
在main.c中#include <tou.h>
在fun.c中同樣#include <tou.h>(好像是必需的,請詳細解釋)
這是必需的。因為編譯器只是把包含文件的代碼復制過來,既然你二個文件中都用到頭文件的內容,那當然要包含頭文件,否則就會出錯。
我的觀點,如果這兩步都是必需的 那麼當有很多個比如10個.c程序每個里頭都要#include <tou.h> 那麼文件是不是會特別大,當有100個.c程序都要包含一下的話,那麼不是非常重復么?) 那當然是會重復的。不過這個對程序的運行效率沒任何影響,只是在編譯過程中對文件的分析時間會稍長些,這也是沒有辦法的事,全看代碼編寫者如何組織結構了。
第二個問題:
會的。解決的方法就是在可能被多次包含的頭文件中開頭加上#pragma once,那樣就可以保證此頭文件代碼只被執行一次,而不會造成頭文件中函數多次重復定義至於引起這種情況的情況。當然你也可以自己用#ifdef等預編譯處理來解決。你問的問題不就是這種情況么?main.c和fun.c中都包含頭文件tou.h

第三個問題:
當我在main.c中這樣
#define unchar unsigned char

那麼當我在fun.c中還需要重新創建替換宏unchar嗎 可以不在創建而直接使用嗎?

答案是需重新創建,不能直接使用。但你可以把一些在多個文件中使用的宏、全局變數等統一定義到一個頭文件中,那這樣就可以避免多次定義了。

閱讀全文

與多個c文件條件編譯相關的資料

熱點內容
蘋果筆記本t2加密晶元怎麼打開 瀏覽:796
安卓如何把手機投屏至電視 瀏覽:737
方舟編譯器現在可提速哪些軟體 瀏覽:58
微信加密為什麼是黑屏 瀏覽:473
android去電狀態 瀏覽:602
蘋果13如何加密視頻 瀏覽:813
linuxweblogic緩存 瀏覽:67
雲伺服器不同地域 瀏覽:946
python鬧鍾怎麼打 瀏覽:686
虛擬主機伺服器有什麼區別 瀏覽:833
演算法與程序的奧秘章節檢測 瀏覽:377
找pdf 瀏覽:530
與伺服器連接斷開如何處理 瀏覽:833
伺服器維修預計十分鍾什麼意思 瀏覽:170
黑馬程序員主打教學是什麼 瀏覽:41
python九乘法表怎麼編寫 瀏覽:974
思維方式pdf 瀏覽:656
tcc社區app怎麼注冊 瀏覽:941
央視網下載加密 瀏覽:455
命令行訪問伺服器 瀏覽:37