在linux下编译C,用GCC,#include 需要 "FILENAME" 或 <FILENAME>是怎么回事?

作者&投稿:居菲 (若有异议请与网页底部的电邮联系)
linux 怎么编译c的源程序的?gcc,编译命令是什么?~

编译方法:格式 gcc [option] [sourcefilename]常用的选项最简单的是:gcc hello.c默认的情况下将生成a.out的可执行性文件,
只需要在终端上输入./a.out就可以看到执行的结果,如果你想指定生成目标文件的名字那么你可以加上 -o选项,命令如下:gcc -o hello hello.c
命令:gcc -c hello hello.c

扩展资料:gcc命令的基本用法
gcc[options] [filenames]
其中,filenames为文件名;options为编译选项。
当不使用任何编译选项编译hello.c时,gcc将会自动编译产生一个a.out的可执行文件:
[root@localhost c]# ls
hello.c
[root@localhost c]# gcc hello.c
[root@localhost c]# ls
a.out hello.c
执行:
[root@localhost c]# ./a.out
Hello, World!
使用-o编译选择,可以为编译后的文件指定一个名字:
[root@localhost c]# ls
a.out hello.c
[root@localhost c]# gcc hello.c -o hello
[root@localhost c]# ls
a.out hello hello.c
执行:
[root@localhost c]# ./hello
Hello, World!
注意:使用-o选项时,-o后面必须跟一个文件名,即:-o outfile。
为了便于描述后面的选项,删除hello和a.out可执行文件。

在终端中输入 gcc 文件名 -o 目标文件名
然后 ./目标文件名 就行了,没有目标文件名,自动存为 a
执行 ./a 就行了。

在使用Gcc编译器的时候,我们必须给出一系列必要的调用参数和文件名称。GCC编译器的调用参数大约有100多个,其中多数参数我们可能根本就用不到,这里只介绍其中最基本、最常用的参数。
  GCC最基本的用法是∶gcc [options] [filenames]
  其中options就是编译器所需要的参数,filenames给出相关的文件名称。
  -c,只编译,不连接成为可执行文件,编译器只是由输入的.c等源代码文件生成.o为后缀的目标文件,通常用于编译不包含主程序的子程序文件。
  -o output_filename,确定输出文件的名称为output_filename,同时这个名称不能和源文件同名。如果不给出这个选项,gcc就给出预设的可执行文件a.out。
  -g,产生符号调试工具(GNU的gdb)所必要的符号资讯,要想对源代码进行调试,我们就必须加入这个选项。
  -O,对程序进行优化编译、连接,采用这个选项,整个源代码会在编译、连接过程中进行优化处理,这样产生的可执行文件的执行效率可以提高,但是,编译、连接的速度就相应地要慢一些。
  -O2,比-O更好的优化编译、连接,当然整个编译、连接过程会更慢。
  -Idirname,将dirname所指出的目录加入到程序头文件目录列表中,是在预编译过程中使用的参数。C程序中的头文件包含两种情况∶
  A)#include
  B)#include “myinc.h”
  其中,A类使用尖括号(),B类使用双引号(“ ”)。对于A类,预处理程序cpp在系统预设包含文件目录(如/usr/include)中搜寻相应的文件,而B类,预处理程序在目标文件的文件夹内搜索相应文件。


GCC执行过程示例

  示例代码 a.c:
  #include
  int main()
  {
  printf("hello
");
  }
  预编译过程:
  这个过程处理宏定义和include,并做语法检查。
  可以看到预编译后,代码从5行扩展到了910行。
  gcc -E a.c -o a.i
  cat a.c | wc -l
  5
  cat a.i | wc -l
  910
  编译过程:
  这个阶段,生成汇编代码。
  gcc -S a.i -o a.s
  cat a.s | wc -l
  59
  汇编过程:
  这个阶段,生成目标代码。
  此过程生成ELF格式的目标代码。
  gcc -c a.s -o a.o
  file a.o
  a.o: ELF 64-bit LSB relocatable, AMD x86-64, version 1 (SYSV), not stripped
  链接过程:
  链接过程。生成可执行代码。链接分为两种,一种是静态链接,另外一种是动态链接。使用静态链接的好处是,依赖的动态链接库较少,对动态链接库的版本不会很敏感,具有较好的兼容性;缺点是生成的程序比较大。使用动态链接的好处是,生成的程序比较小,占用较少的内存。
  gcc a.o -o a
  程序运行:
  ./a
  hello
编辑本段
GCC编译简单例子

  编写如下代码:
  #include
  int main()
  {
  printf("hello,world!
");
  }
  执行情况如下:
  gcc -E hello.c -o hello.i
  gcc -S hello.i -o hello.s
  gcc -c hello.s -o hello.o
  gcc hello.c -o hello
  ./hello
  hello,world!

这个是 C 语言基础要求……
不管哪个 C 语言,都要求必须引用使用中的函数的定义头文件。

Virual Stdio 的 C 模板最开头已经自动加上了引用头文件了,这个头是个万能头文件,他会继续引用大部分基础头文件……如果选择托管的代码,只要设置好引用库就不需要自己再加什么,编译器会自动去继承类。
但这仅限于小程序,大程序还是需要自己引用一些头文件的。

本来根据 C 标准规定,所有的函数都必须提前声明。包括最最最最最最常用的函数也要提前声明。
但为了方便,部分函数是不需要声明就可使用的,这些函数都是基础函数。

printf() 就是这么一个常用的函数,一般他的定义在 stdio.h 里。这个头文件里面的函数很多都是常用函数,编译器会自动引用。
所以你不 #include 声明他的头文件时,你的源代码依然可以继续编译并且可以运行。

#include <xxxxx.h> 和 #include "xxxxx.h" 理论上都是可以用的。但大家分开区别两个类型的,记得是 < >包含的是系统头文件,"" 包含的是自带头文件。

现在所有的 C 代码都要 include 需要的所有函数的头文件,这是一个标准写法。
尤其是 Linux 下面,不同的软件包,会提供不同的同样名字的函数,如果不引用,容易导致混乱。

gcc 的警告输出不是错误,但如果你想编写一个肯定不会出问题的程序,那么没有警告输出的 C 源代码才是好代码。

<FILENAME>是说明要包含的文件。
c语言的基本应用时调用各种函数,有些函数系统自带的,但有些函数是别人编的,那如果你想让系统认识或读懂别人编的函数,那你就需要将函数的定义以及声明给系统看,而这个<FIELNAME>就是包括了函数的定义,这就是要给系统看的。

希望我的回答对你有所帮助。

程序修改如下:
#include <stdio.h>
int main()
{
printf("Hello World!\n");
return 0;
}
然后用下面的命令编译:
#gcc hello.c -o hello
运行命令:
#./hello

windows下也要吧?


如何在linux环境下编辑一个c语言源程序并将其编译为可执行文件?_百度...
创建一个.c文件:touch a.c。4.编辑该文件 输入vi a.c 进入该界面 会发现用户不能从键盘输入信息,这时我们需要从键盘按一个i在下面会显示INSERT(表示插入)。然后就可以使用键盘输入代码。输入完成以后可以按Esc退出插入操作。再同时按shift和冒号,从键盘输入wq(表示保存并退出)。5.编译该文件 ...

c语言可以在linux下执行吗
c语言可以在linux下执行。Linux下使用最广泛的C\/C++编译器是GCC,大多数的Linux发行版本都默认安装,不管是开发人员还是初学者,一般都将GCC作为Linux下首选的编译工具。GCC(GNU Compiler Collection,GNU编译器集合),是一套由 GNU 开发的编程语言编译器。

Linux操作系统中默认安装的C语言编译系统是
Linux操作系统中默认安装的C语言编译系统是GCC(GNU Compiler Collection),是Linux下最常用的C语言编译器,是GNU项目中符合ANSI,C标准的编译系统,能够编译用C、Object C等语言编写的程序。同时它可以通过不同的前端模块来支持各种语言,如Java、Fortran、Pascal、Modula,3和Ada等。C语言的标准 1.1 K...

在linux中编译C输入完程序后输入个:wq然后按什么键就然后就回到了上一...
vi 编辑器里。先 按一下 ESC 退出,然后 按 : 键,然后输入 wq 保存并退出的意思,再打回车,即可退出编辑状态。使用 gcc -o C源文件 即可编译。1 29 lzbltx 2010-10-11 超过23用户采纳过TA的回答 关注 :wq是vi的编辑命令,vi编辑命令中“:”命令最后输入回车键执行。找一个LINUX入门的书...

Unix和Linux下C语言学习指南
编程是一门实践性很强的工作,在你以后的学习或工作中,你将常常会与以下工具打交道, 下面列出学习C语言编程常常用到的软件和工具。(一) 操作系统在UNIX或Linux系统中学习C很方便,所以在开始您的学习旅程前请先选择一个UNIX或Linux操作系统。目前可供个人免费使用的UNIX或Linux系统有FreeBSD、RedHat Linux、SUSE ...

如何在Linux下用eclipse开发C\/C++程序
一、下载 Eclipse IDE for c\/c++ 安装包 启动 Linux 系统,从官网进行下载 二、安装 Eclipse IDE for c\/c++ 进入刚下载的Eclipse 安装包所在目录,在空白处右击鼠标,启动终端。安装 Eclipse 之前,请确保安装了以下组件并更新到最新版:1、Java 环境 2、gcc 和 g++ 下面简单介绍一下检测方法:1、...

Linux中,运行一个C语言程序如何运行
在Linux中,可以使用gcc编译器编译C语言程序,生成可执行文件,并最终执行。具体步骤如下:1、编译。由.c文件生成.o文件,写作:gcc a.c -o a.o -c这个命令可以将a.c编译成a.o。如果存在多个文件,可以逐个编译,即a.c b.c...生成a.o b.o...等。2、链接。由.o文件生成可执行文件,...

关于Linux下的C\/c++编程
当学会了常见的命令操作之后,你就可以在linux平台上开始编写你的C\/C++语言代码了,这时的编写代码和windows上编写的代码没有多大的区别,只是有一些头文件需要替换一下就可以了。接着学会如何使用gcc\/g++编译工具、gdb调试工具(到后期熟练了之后还需要掌握make工具),这样就可以编译调试自己写出的程序了。

在linux环境下对c语言程序编译连接后执行该程序为什么在命令行中加...
因为Linux有许多环境变量,其中有一个指定路径的,你输入的命令(也包括执行程序的命令),系统先到这些路径中去查询,如果其中包含了该语句就执行了,最后都没有查到才执行当前目录中的程序,用.\/强制执行当前目录下的程序就是避免这个意外(环境变量指定路径中与当前目录中要执行的程序同名),省得执行了一...

在linux环境下如何用C语言编程?代码在那里写呢,写完保存成什么格式的呢...
编辑器用vi或vim或emacs写,写完保存为**.c 然后用gcc编译,gdb调试。比如gcc -o test.c test --- 运行 .\/test 编译时只有加 -g 参数,才可用gdb调试。如:gcc -g test.c -o test

道外区17577336393: 如何在Linux下用gcc编译c程序 -
赏琛凯因: 初学者在编译的时候最好一步一步来,以hello.c为例:先将源文件编译成目标文件:gcc - c hello.c 上一步生成hello.o文件,再将目标文件编译成可执行文件:gcc -o hello hello.o

道外区17577336393: 如何在linux系统中用gcc编译并且运行c程序? -
赏琛凯因: 1、gcc t 文件名.c -o 文件名2、直接运行 o 后面的文件名即可 gcc(选项)(参数) 选项:-o:指定生成的输出文件;-E:仅执行编译预处理;-S:将C代码转换为汇编代码;-wall:显示警告信息;-c:仅执行编译操作,不进行连接操作.示例:->gcc test.c -o test->test

道外区17577336393: linux 怎么编译c的源程序的?gcc,编译命令是什么? -
赏琛凯因: 编译方法:格式 gcc [option] [sourcefilename]常用的选项最简单的是:gcc hello.c默认的情况下将生成a.out的可执行性文件,只需要在终端上输入./a.out就可以看到执行的结果,如果你想指定生成目标文件的名字那么你可以加上 -o选项,命令如下...

道外区17577336393: 如何用gcc在linux下编译多线程c语言程序 -
赏琛凯因: 如果已经写好了源文件,那么cd进所在的目录gccfilename.c-ofilename./filename

道外区17577336393: linux终端下如何进行C语言编译 -
赏琛凯因: 1、首先在linux下判断是否安装gcc编译器,直接执行:gcc -v,判断是否安装gcc.2、然后需要在代码框内写一个简单的C源程序. 3、在程序中使用了C语言中的数学开方函数,sqrt(),所以需要引入math.h头文件. 4、写完源程序之后,我们对其进行编译,如果使用通常的编译语句,【gcc math.c -o math】进行编译,会出现错误;大概的意思就是不认识sqrt这个东西. 5、所以需要使用正确的命令:【gcc math.c -lm -o math】;这样才能编译正确.

道外区17577336393: linux 怎么c编译 -
赏琛凯因: 在 Linux 系统下面,可以使用 gcc 编译器对自己编写的 C 语言源程序进行编译.当然了,要想使用 c 编译器对 C 语言源程序进行编译,前提是在安装 Linux 操作系统时,必须把 Linux 系统自带的 gcc 编译器安装上.常用的选项有(其中:$ 表示...

道外区17577336393: 到底怎么在Linux里编写c程序啊? -
赏琛凯因: 在linux下通常使用gedit或vim直接编写.c程序,然后通过gcc指令编译.以Ubuntu系统为例,详细过程如下: 1、进入桌面Temp文件夹 2、右键新建空白文件 3、将文件命名为hello.c 4、进入hello.c,开始编写代码(默认gedit为编辑器) ...

道外区17577336393: 我在linux下写了个程序,怎么用gcc编译?? -
赏琛凯因: gcc是一个编译器,qt是一个界面编程工具,两者是不能比的.linux下编译c程序必然要用到gcc编译器,而qt则是用来开发界面程序的,类似windows下微软的mfc,你要在linux下写程序,必然的要会使用gcc对你的程序进行编译,至于qt只是个基于C++的界面程序开发工具,觉得以后用到就学一下,用不到就算了.我在和你说一遍,gcc只是一个编译器. 你的意思是linux下的c/c++集成开发环境吧,anjuta,eclipse等等都可以,但他们只是提供了开发环境,编译器还是用的gcc.

道外区17577336393: 求助:在linux下用gcc编译C程序
赏琛凯因: 回复在linux下怎么编译C程序:比如C程序保存为helloworld.c# gcc -o helloworld helloworld.c 这一步把helloworld.c编译成可执行的二进制文件helloworld,这里不一定要和C程序的名字一样,可以是其它名字.然后执行该程序:# ./hellogcc 编译器有许多选项,一般来说我们只要知道其中的几个就够了.-o 选项我们已经知道了,表示我们要求输出的可执行文件名. -c 选项表示我们只要求编译器输出目标代码,而不必要输出可执行文件.-g 选项表示我们要求编译器在编译的时候提供我们以后对程序进行调试的信息.

道外区17577336393: Linux下gcc如何编译自己目录下的C程序 -
赏琛凯因: $cd ~ $cd C_code $gcc xxxx.c -o xxxxxxxx其中,~就是 /home/a564034199 xxxx就是你的源文件的名字 xxxxxxxx就是要编译的文件

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网