linux gcc编译命令c文件的方式,之后如何运行

Gcc与Make编译C/C++学习
& & & 在linux环境下 编译C/C++文件需要使用gcc或者make的编译软件进行编译
& & & 编译有三个过程:预编译----&编译-----&链接 & &预编译的过程就是将c/c++文件的头文件包含到代码的过程 &编译就是将文件变成机器代码 &链接就是将代码中使用的各个函数库的机器代码进行链接变成可执行文件
& & &1:首先学习预编译 gcc -o out.c -E src.c
& & &这是hello.c的源文件内容
& &如:gcc -o shao.c -E hello.c
可以看一下预编译后生成的文件内容
内容就是将stdio.h 和 stdlib.h文件拷贝到shao.c中
预编译结束后就要进行编译文件:gcc -o out.o -c src.c
如gcc -o hello.o -c hello.c &就会生成hello.c的机器代码 真是顺序是:生成汇编语言 然后生成机器代码 这里就省略生成汇编语言的过程
机器代码生成后通过链接命令生成可执行文件 gcc -o out src.o....
如gcc -o hello hello.o
执行编译完成后的可执行文件./hello
& & & & & & 到这里 一个c文件就被我们用gcc成功编译成功啦~~到这只是体验了预编译和编译的过程,那么为很么需要链接的过程才能生成可执行文件,链接就是将源代码中用到其他库函数的代码链接到编译生成的机器代码:
& & & & & & 如更改hello.c代码,使用到另一个add.c中的add(int a,int b)的方法,如果不把add.c编译成add.o文件,直接使用gcc -o hello hello.c生成的可执行文件会报错,因为add()方法的机器代码没有链接进来,所以第三部需要gcc -o hello hello.o add.o链接完成后生成的hello可执行文件才能执行:
& & & & & 如图:
& & &使用的add()方法是add.c中的代码,需要执行gcc -o hello.o -c hello.c 和 gcc -o add.o -c &add.c 生成add.o 和 hello.o的机器代码
& & &然后使用第三个步骤gcc -o hello add.o hello.o 进行链接生成可执行文件hello才能运行&
& & 如果不进行add.o直接编译gcc -o hello hello.o 的话可执行文件不能运行
& & &二: 到这基本的预编译--&编译--&链接的过程都熟悉了 &下面学习make编译的使用
& & & & 在真实项目中不使用gcc进行编译 文件太多不够方便,可以把make理解为批处理编译,我要将项目中的.c文件与.o文件关联然后生成可执行文件,完整的makefile文件内容如下:
& & &执行make命令会自动执行当前目录下的makefile文件:效果如图
& & 这样编译项目的话会很快。如果对makefile文件内容不太理解的话,由于时间问题还是去看看makefile编译的语法规范
& & OK &Just Like ! Just Do IT!
看过本文的人也看了:
我要留言技术领域:
取消收藏确定要取消收藏吗?
删除图谱提示你保存在该图谱下的知识内容也会被删除,建议你先将内容移到其他图谱中。你确定要删除知识图谱及其内容吗?
删除节点提示无法删除该知识节点,因该节点下仍保存有相关知识内容!
删除节点提示你确定要删除该知识节点吗?NotePad++是一款轻型的免费软件,相对于VC等大型软件来说,具有简便高效的特点。如果我们能够使用NotePad++来编译运行C程序,那么可以说是非常方便的。下面我们就来介绍一下如何用NotePad++来编写并运行C程序。
NotePad++ (百度搜索即得)TDM-GCC,或Dev C++ (文中有地址,或上官网下载)等
1.下载软件并安装:NotePad++(利用文本编辑功能)TDM-GCC(GCC编译器,GCC For Windows中比较方便的一个版本)百度TDM-GCC进入官网即可。这里为了方便,提供原版安装包:链接:http://pan.baidu.com/s/1o6HUxo2备用地址:链接:http://pan.baidu.com/s/1c01tGJ2 密码:2gey或者Dev C++(利用内部的gcc编译器)Dev C++我是上官网下载的,这里为了方便,提供原版安装包:主链接:http://pan.baidu.com/s/1mgspFPe备用链接: 密码:tkdi2.设置环境变量:TDM-GCC已经设定好了环境变量,如果是Dev-Cpp,需要手动配置:在&计算机&图标或按钮上,右键属性,有一个”高级系统设置“,点击这个按钮,修改。如果存在Path属性,直接编辑,在最末尾加上个分号然后写上Dev-Cpp的安装路径至bin文件夹;不存在,直接新建,加上该条。注:如出现&找不到命令&的情况,即为未配置好环境变量,可能是编译器安装出现问题所致。请查找目录至bin文件夹,看有否gcc.exe文件。如未出现,即为安装问题。
3.创建文件:新建一个.c文件,输入#include&stdio.h&int main(){ printf(&Hello World!\n&); return 0;}并保存。4.编译并运行:单击菜单,选择最上选项”运行“,或直接按下F5。弹出运行窗口。输入:cmd /k gcc -o &$(CURRENT_DIRECTORY)\$(NAME_PART).exe& &$(FULL_CURRENT_PATH)& && CLS && &$(CURRENT_DIRECTORY)\$(NAME_PART).exe& & PAUSE & EXIT单击运行即可。也可以使用其他命令:编译:cmd /k gcc -Wall -o &$(CURRENT_DIRECTORY)\$(NAME_PART).exe& &$(FULL_CURRENT_PATH)& & PAUSE & EXIT运行:cmd /k &$(CURRENT_DIRECTORY)\$(NAME_PART).exe& & PAUSE & EXIT
5.命令行解释:可以直接点击保存,弹出窗口,输入名称如”编译并运行 C“,并设定好快捷键。关于脚本行:cmd /k gcc -o &$(CURRENT_DIRECTORY)\$(NAME_PART).exe& &$(FULL_CURRENT_PATH)& && CLS && &$(CURRENT_DIRECTORY)\$(NAME_PART).exe& & PAUSE & EXITcmd /k是弹出cmd窗口并执行后续指令。&和&&表示连接作用,说明有多行指令合为一行。(1)gcc -o &$(CURRENT_DIRECTORY)\$(NAME_PART).exe& &$(FULL_CURRENT_PATH)& 编译生成.exe文件,输出源文件所在目录。注意这里需要有引号,目的是为了在目录及文件名存在空格的情况下也能够正常运行。(2)&& CLS 清屏。&&的意义在于,前面的语句出现错误,将不会执行该句。(3)&& &$(CURRENT_DIRECTORY)\$(NAME_PART).exe& 运行刚刚生成的.exe文件。如果先前的编译错误,将不会运行。(4)& PAUSE 暂停,提示”按任意键继续“。这里无论前面有否错误,都将执行。因此我们看到的是编译错误,显示错误信息并暂停的窗口。(5)& EXIT 退出。编译失败: 6.综合解释(1) GCC for Windows通常使用两个版本,MinGW和Cygwin。文中的TDM-GCC是MinGW的一个版本。通用版MinGW和Cygwin不易安装,使用TDM-GCC或者Dev-Cpp自带的MinGW编译器会使得配置相对简单。(2) gcc [附加选项] -o &输出文件& &源文件1& [&源文件2(可多个)&]是gcc命令行的标准模式。如gcc -std=c99 -O2 -s -o &$(CURRENT_DIRECTORY)\$(NAME_PART).exe& &$(FULL_CURRENT_PATH)&意思就是以C99模式(-std=c99),尽可能多地优化(-O2),最小尺寸(-s)来编译。同样地,C++也可以使用类似的命令行来编译。将gcc换为g++即可(注意-std=c99不可出现在C++中,另外文件的扩展名需注意更改为.cpp,.cc,.cxx,.C等)头文件(.h)直接在源文件中书写如#include &system.h&即可,将自动查找源文件所在目录来获取.h文件。当然也可以使用-I &include目录&命令来添加非标准库。如此将不一一赘述。
可以使用其他编译器来编译,如VC自带的编译器。配置编译器需注意环境变量是否准确。编译器需注意操作系统平台的兼容性。x64是64位系统,x86是32位系统。
哪里可以购买 iPhone8?哪里价格又是最低?
关注公众号回复“苹果”,获取购买详情。
微信上搜索“南窗数码”,或扫描下方的二维码
“编译源目录”相关经验
编译源目录最新经验MAC中使用Vim和GCC编译C程序
时间: 06:50:25
&&&& 阅读:586
&&&& 评论:
&&&& 收藏:0
标签:1、打开终端
2、输入以下命令进入vim编辑器:
3、进入编辑器后按i进入insert模式,然后键入以下代码:
#include&stdio.h&
int main(){
printf("\nhelloWorld!\n\n");
4、按ESC退出编辑模式,然后键入:wq,退出并保存刚编辑好的a.c
5、在终端中输入以下代码,把a.c编译为可执行文件
gcc a.c -o a
6、输入./a然后回车,就可以看到程序a.c的执行结果:在终端打印出hello World!这句。
MacBook-Pro-2:~ mac$ ./a
helloWorld!
MacBook-Pro-2:~ mac$
注意:以上的第5步的代码其实是由四步组成的:
(1)预处理:使用-E生成.i文件:
gcc -E a.c -o a.i
(2)汇编:使用-S生成.s文件:
gcc -S a.i -o a.s
(3)编译:使用-c生成.o文件:
gcc -c a.s -o a.o
(4)连接:使用-o生成可执行文件:
gcc a.o -o a
&标签:原文地址:http://www.cnblogs.com/jiwangbujiu/p/5518589.html
&&国之画&&&& &&&&chrome插件
版权所有 京ICP备号-2
迷上了代码!gcc命令_Linux gcc 命令用法详解:基于C/C++的编译器当前位置: &
& gccgcc命令
gcc命令使用GNU推出的基于C/C++的编译器,是开放源代码领域应用最广泛的编译器,具有功能强大,编译代码支持性能优化等特点。现在很多程序员都应用GCC,怎样才能更好的应用GCC。目前,GCC可以用来编译C/C++、FORTRAN、JAVA、OBJC、ADA等语言的程序,可根据需要选择安装支持的语言。 语法
gcc(选项)(参数) 选项
-o:指定生成的输出文件;
-E:仅执行编译预处理;
-S:将C代码转换为汇编代码;
-:显示警告信息;
-c:仅执行编译操作,不进行连接操作。 参数 C源文件:指定C语言源代码文件。 实例 常用编译命令选项 假设源程序文件名为.c 无选项编译链接
gcc test.c 将test.c预处理、汇编、编译并链接形成可执行文件。这里未指定输出文件,默认输出为a.out。 选项 -o
gcc test.c -o test 将test.c预处理、汇编、编译并链接形成可执行文件test。-o选项用来指定输出文件的文件名。 选项 -E
gcc -E test.c -o test.i 将test.c预处理输出test.i文件。 选项 -S
gcc -S test.i 将预处理输出文件test.i汇编成test.s文件。 选项 -c
gcc -c test.s 将汇编输出文件test.s编译输出test.o文件。 无选项链接
gcc test.o -o test 将编译输出文件test.o链接成最终可执行文件test。 选项 -O
gcc -O1 test.c -o test 使用编译优化级别1编译程序。级别为1~3,级别越大优化效果越好,但编译时间越长。 多源文件的编译方法 如果有多个源文件,基本上有两种编译方法: 假设有两个源文件为test.c和testfun.c 多个文件一起编译
gcc testfun.c test.c -o test 将testfun.c和test.c分别编译后链接成test可执行文件。 分别编译各个源文件,之后对编译后输出的目标文件链接。
gcc -c testfun.c
#将testfun.c编译成testfun.o
gcc -c test.c
#将test.c编译成test.o
gcc -o testfun.o test.o -o test
#将testfun.o和test.o链接成test 以上两种方法相比较,第一中方法编译时需要所有文件重新编译,而第二种方法可以只重新编译修改的文件,未修改的文件不用重新编译。送福利在Linux命令大全(man.linuxde.net)可以查询您所需要的Linux命令教程和相关实例。如果您觉得本站内容对您有所帮助,请推荐给更多需要帮助的人。Linux下如何编译并运行C程序
市面上常见的Linux都是发行版本,典型的Linux发行版包含了Linux内核、桌面环境和各种常用的必备工具,国内使用较多的是Ubuntu(乌班图)、CentOS、Deepin(深度Linux)。本教程以Deepin为例来讲述如何编译C程序。Gedit
Gedit是一个简单实用的文本编辑器,拥有漂亮的界面,支持语法高亮,比 Vim 更易上手。本教程将Gedit作为C代码编辑器。
Gedit的安装:
在当前目录下创建一个C源文件并打开:
可以看到gedit的窗口,输入:
gedit 窗口截图
注意:Gedit支持多种语言的高亮显示,一般情况下能够自动识别语言,如果识别错误,请在“编辑-&高亮模式“下选择C。GCC
Linux下使用最广泛的C/C++编译器是GCC,大多数的Linux发行版本都默认安装,不管是开发人员还是初学者,一般都将GCC作为Linux下首选的编译工具。本教程毫不犹豫地使用GCC来编译C程序。
保存文件后退出,打开终端并 cd 到当前目录,输入下面的命令:
gcc test.c -o test
可以直接将C代码编译链接为可执行文件。
可以看到在当前目录下多出一个文件 test,这就是可执行文件。不像Windows,Linux不以文件后缀来区分可执行文件,Linux下的可执行文件后缀理论上是可以任意更改的。
当然,也可以分步编译:1) 预处理
gcc -E test.c -o test.i
在当前目录下会多出一个预处理结果文件 test.i,打开 test.i 可以看到,在 test.c 的基础上把stdio.h和stdlib.h的内容插进去了。2) 编译为汇编代码
gcc -S test.i -o test.s
其中-S参数是在编译完成后退出,-o为指定文件名。3) 汇编为目标文件
gcc -c test.s -o test.o
.o就是目标文件。目标文件与可执行文件类似,都是机器能够识别的可执行代码,但是由于还没有链接,结构会稍有不同。3) 链接并生成可执行文件
gcc test.o -o test
如果有多个源文件,可以这样来编译:
gcc -c test1.c -o test1.o
gcc -c test2.c -o test2.o
gcc test1.o test2.o -o test
注意:如果不指定文件名,GCC会生成名为a.out的文件,.out文件只是为了区分编译后的文件,Linux下并没有标准的可执行文件后缀名,一般可执行文件都没有后缀名。
编译后生成的test文件就是程序了,运行它:
如果没有运行权限,可以使用sudo命令来增加权限(注意要在Linux的分区下):
sudo cdmod test 777
对于程序的检错,我们可以用-pedantic、-Wall、-Werror选项:
-pedantic选项能够帮助程序员发现一些不符合 ANSI/ISO C标准的代码(并不是全部);-Wall可以让gcc显示警告信息;-Werror可以让gcc在编译中遇到错误时停止继续。
这3个选项都是非常有用的。
在linux下执行一个简单的C程序
Linux中将c文件编译成可执行文件的方法
linux下命令行下编译c程序
Linux下用g++编译c程序
Linux 下编译并运行C语言程序
在linux下编写简单的c程序
gcc编译运行c文件
在Linux下编译C程序
linux下使用vim编写运行C,C++程序(以hello world为例)
如何在Windows下使用Linux系统来编译和运行程序?
没有更多推荐了,
(window.slotbydup=window.slotbydup || []).push({
id: "5865577",
container: s,
size: "300,250",
display: "inlay-fix"

我要回帖

更多关于 linux gcc编译命令 的文章

 

随机推荐