c编译
① 如何编译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选项控制是否连接。
② 怎样用c语言编译
C编译的整个过程很复杂,大致可以分为以下四个阶段:
预处理阶段在该阶段主要完成对源代码的预处理工作,主要包括对宏定义指令,头文件包含指令,预定义指令和特殊字符的处理,如对宏定义的替换以及文件头中所包含的文件中预定义代码的替换等,总之这步主要完成一些替换工作,输出是同源文件含义相同但内容不同的文件。
编译、优化阶段编译就是将第一阶段处理得到的文件通过词法语法分析等转换为汇编语言。优化包括对中间代码的优化,如删除公共表达式,循环优化等;和对目标代码的生成进行的优化,如如何充分利用机器的寄存器存放有关变量的值,以减少内存访问次数。
汇编阶段将汇编语言翻译成机器指令。
链接阶段链接阶段的主要工作是将有关的目标文件连接起来,即将在一个文件中引用的符号同该符号在另外一个文件中的定义连接起来,使得所有的目标文件成为一个能够被操作系统装入执行的统一整体。
③ linux 怎么c编译
在 Linux 系统下面,可以使用 gcc 编译器对自己编写的 C 语言源程序进行编译。当然了,要想使用 c 编译器对 C 语言源程序进行编译,前提是在安装 Linux 操作系统时,必须把 Linux 系统自带的 gcc 编译器安装上。
常用的选项有(其中:$ 表示普通用户装下面的提示符,# 表示超级用户下面的提示符):
$gcc my_program.c <cr>
如果 C 源程序没有任何错误的话,编译器就会自动生成一个缺省的可执行程序,该文件名为 a.out
$gcc -o my_program my_program.c <cr> (-o 选项用于指定输出的可执行程序名)
如果 C 源程序没有任何错误的话,编译器就会自动生成一个 my_program 的可执行程序
其他还有很多选项,可以参考 gcc 的详细使用文档。
④ C编译程序是
C
C编译程序就是将C语言程序编译成目标机器上的程序的。
⑤ c编译器是如何编译程序的
每种平台都有自己的C编译器的,例如linux下有 gcc ,windows下有ms vs 系列。c的源程序经过这些编译器,再与各自平台的连接器就可以生成该平台下对应的二进制执行代码了。
但由于C语言很多时候会涉及很多硬件级调用的,这个对平台依赖性极大。所以移植性这种东西,我只能说,哈哈!
⑥ c编译程序是什么
c编译程序是将c语言程序编译成目标代码程序的程序,即正确答案应该选择D。
1、c语言是目前世界上最流行、使用最广泛的面向过程的高级程序设计语言。 c语言对操作系统和系统使用程序以及需要对硬件进行操作的场合,用c语言明显优于其它高级语言,许多大型应用软件都是用c语言编写的。
2、编译就是利用编译程序从源语言编写的源程序产生目标程序的过程,其中的五个阶段分别是词法分析、语法分析、语义检查和中间代码生成、代码优化、目标代码生成。主要是进行词法分析和语法分析,又称为源程序分析,分析过程中发现有语法错误,给出提示信息。
(6)c编译扩展阅读
c编译程序的语言特点
对于c编译程序来说,其语言的特点如下:
1、c语言是一种结构化语言。它层次清晰,便于按模块化方式组织程序,易于调试和维护,而且表现能力和处理能力极强。
2、c语言具有丰富的运算符和数据类型,便于实现各类复杂的数据结构。它还可以直接访问内存的物理地址,进行位(bit)一级的操作。
3、由于c语言实现了对硬件的编程操作,因此集高级语言和低级语言的功能于一体。它既可用于系统软件的开发,也适合于应用软件的开发。
4、此外,c语言还具有效率高、可移植性强等特点。因此它广泛地移植到了各类各型计算机上,从而形成了多种版本。
⑦ ubuntu下如何编译C语言
1、首先打开ubnutu开发环境,直接输入组合键ctrl+alt+t调出命令行界面。
⑧ C语言编译一个程序
简单啊 在Visual c++下编译啊 ,TC识别不了中文
#include<stdio.h>
#include<string.h>
void main()
{
char s[30];
printf("输入\"你是一只猪\"");
while(1)
{ gets(s);
if(strcmp(s,"你是一只猪")==0)
{
printf("终于承认你是猪了吧!");
return;
}
else
gets(s);
}
}
⑨ C编译程序的功能是什么
检查C语言程序的语法错误
如果用gcc编译,只需要一个命令就可以生成可执行文件hw:xiaosuo@gentux hw $ gcc -o hw hw.cxiaosuo@gentux hw $ ./hw Hello World!
补充:编译程序(Compiler,compiling program)也称为编译器,是指把用高级程序设计语言书写的源程序,翻译成等价的机器语言格式目标程序的翻译程序。编译程序属于采用生成性实现途径实现的翻译程序。它以高级程序设计语言书写的源程序作为输入,而以汇编语言或机器语言表示的目标程序作为输出。编译出的目标程序通常还要经历运行阶段,以便在运行程序的支持下运行,加工初始数据,算出所需的计算结果。
⑩ windows怎么编译.c文件
(1)先用记事本编写如下所示的代码,并另存为hello.cpp,假设其保存路径为
C:\Users\Administrator\Desktop。
#include<iostream>
using namespace std;
int main()
{
cout<<"hello world!"<<endl;
return 0;
}
(2)用记事本写一段简单的批处理文件,内容如下所示,在保存文件时选择另存为,文件名
假设为batch.bat,bat是批处理文件的后缀,保存类型选择:所有文件(这个尤其需要注意),
假设其保存路径也是:C:\Users\Administrator\Desktop。
set path=D:\Softwares\en_Visual_Studio2010_Professional_x86_x16-81637\VC\bin
set include=D:\Softwares\en_Visual_Studio2010_Professional_x86_x16-81637\VC\include
set lib=D:\Softwares\en_Visual_Studio2010_Professional_x86_x16-81637\VC\lib
上面批处理文件的第一句话表示设置环境变量,这个也可以通过:计算机/属性/高级系统设置/
环境变量/用户变量,把D:\Softwares\en_Visual_Studio2010_Professional_x86_x16-81637\VC\bin
放到path的值里去,记得与之前已有值之间用";"隔开。这个path文件夹是我们装载VS2010时自
带的,在设置路径时要根据自己的安装路径进行修改,里面包含微软在Windows下给我们提供的
C/C++编译器cl.exe程序(编译器自身也是一个软件程序,只是它的作用是用来编译其它的程序),
当然还有link.exe链接程序,调用cl时,系统会自动调用link程序(后面将看到我们只用了cl命令就
可以进行C/C++程序的编译、链接)。后面两句话分别表示包含C++中自带的头文件库和静态链接
库,静态理解库包含了头文件中函数对应的实现部分,为了不让人们看到其中的源代码,它以二进
制文件形式编码,若要查看其内容需要进行反汇编。
(3)通过cmd命令进入DOS操作界面,输入cd C:\Users\Administrator\Desktop进入cpp文件和bat
批处理文件所在的位置,然后键入batch.bat进行批处理,这些操作在VS2010集成开发环境中都为我
设置好了,所以我们在里面写C/C++程序时并没有这样设置路径的繁琐操作,但是通过自己手动的
路径设置,我们会对程序的编译、链接、执行有更加深入的认识。
(4)键入cl hello.cpp,我们会看到计算机报出了“无法启动此程序,因为计算机中丢失mspdb100.dll。
尝试重新安装该程序以解决此问题”的系统储物,dll文件是动态链接库文件,其是在cl.exe程序运行时
才被加载进来的文件,这个静态链接库lib文件不同。这说明在D:\Softwares\en_Visual_Studio2010_
Professional_x86_x16-81637\VC\bin路径里没有找到mspdb100.dll,原来此文件在文件夹D:\Softwares\
en_Visual_Studio2010_Professional_x86_x16-81637\VC\Common7\IDE里,我们可以将此文件拷到bin
文件夹里,或将D:\Softwares\en_Visual_Studio2010_Professional_x86_x16-81637\Common7\IDE加到
批处理的path环境变量里,或者将其加到cpp文件所在的文件夹里,这只会引起在搜索顺序上的不同。
(5)再次键入cl hello.cpp,我们看到在C:\Users\Administrator\Desktop文件夹里得到了hello.obj文件,
这是编译后的输出文件,但是没有得到可执行exe文件,DOS界面里出现这样的错误“LINK:fatal error LNK
1104:cannot open file 'kernel32.lib' “这样的链接错误,kernel32.lib是Windows系统文件,通过Windows
自带的搜索工具,我们看到此文件在文件夹C:\Program Files\Microsoft SDKs\Windows\v7.0A\Lib里,我们
可以将其加到cpp文件所在的文件夹或bin文件里。再次键入cl hello.cpp,我们发现这次程序被成功编译链接
了,cpp文件所在的文件夹里多了两个文件:hello.obj和hello.exe。
(6)在DOS界面键入hello.exe,程序被执行,输出了我们预想的hello world!,至此,在Windows下模拟
linux命令行操作,编译C/C++文件全部完成了。