当前位置:首页 » 编程软件 » 只编译一个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 浏览:239
指纹密码怎么破 发布:2024-09-28 09:45:11 浏览:661
自编自选脚本 发布:2024-09-28 09:45:10 浏览:932
androidui教程pdf 发布:2024-09-28 09:44:13 浏览:899