您好、欢迎来到现金彩票网!
当前位置:ds视讯 > 服务原语 >

linux下GCC编程基础

发布时间:2019-07-04 17:56 来源:未知 编辑:admin

  在Linux下面,如果要编译一个C语言源程序,我们要使用GNU的gcc编译器. 下面

  gcc 编译器就会为我们生成一个hello的可执行文件.执行./hello就可以看到程

  序的输出结果了.命令行中 gcc表示我们是用gcc来编译我们的源程序,-o 选项表示

  我们要求编译器给我们输出的可执行文件名为hello 而hello.c是我们的源程序文件.

  gcc编译器有许多选项,一般来说我们只要知道其中的几个就够了. -o选项我们

  已经知道了,表示我们要求输出的可执行文件名. -c选项表示我们只要求编译器输出

  目标代码,而不必要输出可执行文件. -g选项表示我们要求编译器在编译的时候提

  知道了这三个选项,我们就可以编译我们自己所写的简单的源程序了,如果你

  想要知道更多的选项,可以查看gcc的帮助文档,那里有着许多对其它选项的详细说

  这样的话我们也可以产生main程序,而且也不时很麻烦.但是如果我们考虑一

  下如果有一天我们修改了其中的一个文件(比如说mytool1.c)那么我们难道还要重

  新输入上面的命令?也许你会说,这个很容易解决啊,我写一个SHELL脚本,让她帮我

  去完成不就可以了.是的对于这个程序来说,是可以起到作用的.但是当我们把事情

  想的更复杂一点,如果我们的程序有几百个源程序的时候,难道也要编译器重新一

  为此,聪明的程序员们想出了一个很好的工具来做这件事情,这就是make.我们

  只要执行以下make,就可以把上面的问题解决掉.在我们执行make之前,我们要先

  编写一个非常重要的文件.--Makefile.对于上面的那个程序来说,可能的一个

  有了这个Makefile文件,不过我们什么时候修改了源程序当中的什么文件,我们

  只要执行make命令,我们的编译器都只会去编译和我们修改的文件有关的文件,其

  在Makefile中也#开始的行都是注释行.Makefile中最重要的是描述文件的依赖

  mytool2.o 当倚赖的对象在目标修改后修改的话,就要去执行规则一行所指定的命

  Makefile有三个非常有用的变量.分别是$@,$^,$代表的意义分别是:

  $@--目标文件,$^--所有的依赖文件,$--第一个依赖文件.

  如果我们使用上面三个变量,那么我们可以简化我们的Makefile文件为:

  经过简化后我们的Makefile是简单了一点,不过人们有时候还想简单一点.这里

  这个规则表示所有的 .o文件都是依赖与相应的.c文件的.例如mytool.o依赖于

  好了,我们的Makefile 也差不多了,如果想知道更多的关于Makefile规则可以查

  这个程序相当简单,但是当我们用 gcc -o temp temp.c 编译时会出现下面所示

  出现这个错误是因为编译器找不到log的具体实现.虽然我们包括了正确的头

  文件,但是我们在编译的时候还是要连接确定的库.在Linux下,为了使用数学函数,我

  正确的编译.也许有人要问,前面我们用printf函数的时候怎么没有连接库呢?是这样

  的,对于一些常用的函数的实现,gcc编译器会自动去连接一些常用库,这样我们就没

  有必要自己去指定了. 有时候我们在编译程序的时候还要指定库的路径,这个时候

  我们要用到编译器的 -L选项指定路径.比如说我们有一个库在 /home/hoyt/mylib下

  ,这样我们编译的时候还要加上 -L/home/hoyt/mylib.对于一些标准库来说,我们没

  有必要指出路径.只要它们在起缺省库的路径下就可以了.系统的缺省库的路径/lib

  还有一个问题,有时候我们使用了某个函数,但是我们不知道库的名字,这个时

  候怎么办呢?很抱歉,对于这个问题我也不知道答案,我只有一个傻办法.首先,我到

  标准库路径下面去找看看有没有和我用的函数相关的库,我就这样找到了线程

  我们编写的程序不太可能一次性就会成功的,在我们的程序当中,会出现许许

  最常用的调试软件是gdb.如果你想在图形界面下调试程序,那么你现在可以选

  择xxgdb.记得要在编译的时候加入 -g选项.关于gdb的使用可以看gdb的帮助文件.由

  于我没有用过这个软件,所以我也不能够说出如何使用. 不过我不喜欢用gdb.跟踪

  一个程序是很烦的事情,我一般用在程序当中输出中间变量的值来调试程序的.当

  然你可以选择自己的办法,没有必要去学别人的.现在有了许多IDE环境,里面已经自

  有时候我们只知道一个函数的大概形式,不记得确切的表达式,或者是不记得

  比如说我们想知道fread这个函数的确切形式,我们只要执行 man fread 系统就

  Windows中我们常用vs来编译编写好的C和C++代码;vs把编辑器,编译器和调试器等工具都集成在这一款工具中,在Linux下我们能用什么工具来编译所编写好的代码呢,其实Linux下这样的工具有很多...博文来自:leap的博客

  Horizonhui的博客C语言判断文件夹或者文件是否存在以及权限等信息access函数和删除文件或目录 remove()函数使用实例

  C语言判断文件夹或者文件是否存在以及权限等信息access函数和删除文件或目录remove()函数使用实例一、access函数可以判断文件夹或者文件是否存在以及获取权限等信息。    1、所需头文件和...

  在服务器上面安装一些工具,比如Redis时,需要有gcc环境。如果服务器是联网的,那么好办了,直接使用如下命令联网安装。yum-yinstallgcc但是如果服务器不能联网,那么就需要一种离线安装的方...

  首先使用gcc要在linux环境下,我们可以使用真正的linux系统(不过这么做可能有一些麻烦)或者使用一些windows下的虚拟软件,可以使用虚拟机搭建的linux环境,这样可以很方便的进行lin...

  开放、自由和灵活是Linux的魅力所在,而这一点在gcc上的体现就是程序员通过它能够更好地控制整个编译过程。在使用gcc编译程序时,编译过程可以细分为4个阶段:●      预处理(Pre-Proce...

  前言实验室里的师姐和师弟最近都在linux下写c和c++代码,常用的gcc命令我也有一些遗忘了,这里转载他人比较好的博客,记录学习一下简介GCC的意思是GUNCCompiler。经过了多年的发展,GC...

  linux下c编程起步一:掌握gcc基本用法 初学时最好从命令行入手,这样可以熟悉从编写程序、编译、调试和执行的整个过程。编写程序可以用vi或其它编辑器编写。编译则使用gcc命令。要往下学习首先就得...

  本篇文章面向一些会linux文件操作与vim基本命令,编程大佬请移步勿喷。一、编译器gcc的使用1.gcc支持的一些源文件后缀名后缀源文件言源文件.C.cc.cxxC++源文件.mObject...

  在windows开发平台,我们用惯了vc、vs等IDE(集成开发环境),在编译好源代码之后,按下相应按钮,IDE就会为我们完成编译,链接的过程。然后在Linux平台下,却没有这么方便的开发环境,很多事...

  gcc的基本用法命令格式:gcc[选项][文件名]编译的四个阶段:-E:仅执行编译预处理;-c:仅执行编译操作,不进行连接操作;-S:将C代码转换为汇编代码;-o:指定生成的输出文件。–c是使用GNU...

  许多同学在进行C语言文件操作的时候,需要对文件是否存在进行一个判断,经过昨天的了解,io库中的access函数可以起到文件判断的作用:C语言判断文件是否存在用函数access,头文件是io.h,原型:...

  初学时最好从命令行入手,这样可以熟悉从编写程序、编译、调试和执行的整个过程。编写程序可以用vi或其它编辑器编写。编译则使用GCC命令。要往下学习首先就得熟悉GCC命令的用法。       GCC命令提...

  可能大家在编译内核、u-boot或者其他的时候遇到过这样子的问题我们高高兴兴、满怀信心的敲下make这个万金油命令后却沮丧的发现结果并不如我们期待的那样子的,出现了这样子的错误信息          ...

  LinuxGCC64位编程技巧,项目要用到,上网查了一下,资料虽多,但零零散散,干脆自己整理一份,共享给大家。Windows和Linux类似,但有的细节还需要大家自己查了。...

  在为 Linux开发应用程序时,绝大多数情况下使用的都是C语言,因此几乎每一位Linux程序员面临的首要问题都是如何灵活运用C编译器。目前Linux下最常用的C语言编译器是GCC(GNUCompile...

  假设你的电脑能够访问internet,这个命令会自动从网络下载并把软件安装到本地。超级用户权限:#yum-yinstallgcc-c++...

  前言安装过程下载解压gcc下载依赖文件编译gcc前言对于预装了yun的Linux系统安装gcc编辑器就及其简易,只需执行如下命令即可yuninstallgcc而本博客介绍自行安装gcc,即下载到安装运...

  初学时最好从命令行入手,这样可以熟悉从编写程序、编译、调试和执行的整个过程。编写程序可以用vi/vim(个人觉得vim比vi好用)或其它编辑器编写。     编译则使用gcc命令。要往下学习...

  工欲善其事,必先利其器。而gcc是Linux系统下最常见的编辑器,本文学习gcc编译器的使用。   gcc支持编译的一些源文件后缀名      gcc编译程序的流程      Linux的可执行文件并...

  常敲代码手不抖家庭媒体中心解决方案(四、 群晖系列nas基本功能使用指南篇2)

  3、 照片网络共享功能 该功能主要提供照片汇集、备份,尤其是有小宝宝的家庭,每天都有会很多照片和视频产生,用相机、手机、摄像机拍的值得回忆的惊喜瞬间,但是这么多设备拍下的照片和视频汇集起来就非常麻烦了...

  在Linux下进行C语言编程,必然要采用GNUGCC来编译C源代码生成可执行程序。一、GCC快速入门Gcc指令的一般格式为:Gcc[选项]要编译的文件[选项][目标文件]其中,目标文件可缺省,Gcc默...

  市面上常见的Linux都是发行版本,典型的Linux发行版包含了Linux内核、桌面环境和各种常用的必备工具,国内使用较多的是Ubuntu(乌班图)、CentOS、Deepin(深度Linux)。本教...

  近期刚刚放弃了Windows,投入了Ubuntu的怀抱。今天就拿一个小小的案例来做一下C语言的编译和运行流程。额,顺便说一句。本文适合那些Linux新手,不适合老鸟哈。看完本文可以学到什么?程序员编码...

  各位看官听好了,上一回说到搭建程序开发环境,不过只搭建了一个程序编辑器。咱们今天就来搭建其它的开发环境:程序编译器,程序调试器。程序编译器:在Linux中一提到程序编译器,当然就会想到大名鼎鼎的gcc...

  gcc编译过程1.预处理:头文件、宏展开2.编译:3.汇编:生成目标文件4.链接:链接其他的程序库生成可执行文件接下来先看gcc的常用选项-o:产生目标(.i、.s、.o、可执行文件等-E:只运行C预...

  很多时候,我们对于程序的编译和链接过程很少关注。特别是使用强大的IDE之后,更多人只是会使用IDE进行编程。这样,一旦出现编译或者链接问题,有时候会很难找到编译或者链接问题。理解编译和链接的过程,对于...

  Linux下gcc生成和使用静态库和动态库详解(原文链接)本文在原文的基础上做一些详细验证,部分稍有改动,一、基本概念1.1什么是库1.2库的种类1.3库存在的意义1.4库文件是如何产生的在linux...

  帐号相关流程注册范围n企业n政府n媒体n其他组织换句话讲就是不让个人开发者注册。 :)填写企业信息不能使用和之前的公众号账户相同的邮箱,也就是说小程序是和微信公众号一个层级的。填写公司机构信息,对公账...

  专注于cocos+unity+node.js全栈网游开发MATLAB计算矩阵间的欧式距离(不用循环!)

  MATLAB编程题rn题目描述:从一个NxM的矩阵C中找出与1xM的矩阵P欧氏距离最小的某一行row,要求不能用循环!!!rn输入:矩阵C(NxM)、矩阵P(1xM)rn输出:rowrnrnrn解题思...

  jquery/js实现一个网页同时调用多个倒计时(最新的)nn最近需要网页添加多个倒计时. 查阅网络,基本上都是千遍一律的不好用. 自己按需写了个.希望对大家有用. 有用请赞一个哦!nnnn//jsn...

  由于CLion的工程都是基于CMake来构建的,因此导入第三方库就需要在CMake文件中进行配置。这里把利用CMake导入第三方库的过程记录下来。...

  大迷毛的LALALAND编写C语言版本的卷积神经网络CNN之一:前言与Minst数据集

  卷积神经网络是深度学习的基础,但是学习CNN却不是那么简单,虽然网络上关于CNN的相关代码很多,比较经典的是tiny_cnn(C++)、DeepLearnToolbox(Matlab)等等,但通过C语...

  扫二维码关注,获取更多技术分享nnn 本文承接之前发布的博客《 微信支付V3微信公众号支付PHP教程/thinkPHP5公众号支付》必须阅读上篇文章后才可以阅读这篇文章。由于最近一段时间工作比较忙,...

  一、定义状态(State)模式又称为状态对象模式(Pattern of Objects for State),状态模式是对象的行为模式。状态模式允许一个对象在其内部状态改变时改变其行为,用于解决系统中...

  最近比较有空,大四出来实习几个月了,作为实习狗的我,被叫去研究Docker了,汗汗!nnDocker的三大核心概念:镜像、容器、仓库n镜像:类似虚拟机的镜像、用俗话说就是安装文件。n容器:类似一个轻量...

  我走小路的博客将Excel文件导入数据库(POI+Excel+MySQL+jsp页面导入)第一次优化

  本篇文章是根据我的上篇博客,给出的改进版,由于时间有限,仅做了一个简单的优化。相关文章:将excel导入数据库2018年4月1日,新增下载地址链接:点击打开源码下载地址十分抱歉,这个链接地址没有在这篇...

  一、概述最近在springboot项目引入thymeleaf模板时,使用非严格标签时,运行会报错。默认thymeleaf模板对html5标签是严格检查的。二、在项目中加NekoHTML库在Maven中...

  本文介绍如何使用VS2015作为编译开发环境,调用OpenCV3.31和Qt5.9.1写图像处理的GUI。rn1.目录结构rn假设我们要创建一个名为VideoZoom的工程,那么首先按下图构建目录结构...

http://wendevick.net/fuwuyuanyu/648.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有