gcc与g++的使用

2023-11-03

1 gcc编译器的基本语法格式如下:

gcc  【选项】 准备编译的文件  【选项】  【目标文件】

例如:编译名为 test.c 的c程序  :  gcc test.c -o test

 

2 若使用gcc编译器编译c++程序,与编译c程序略有不同:

若cpp文件中未使用任何c++标准库的内容,即还是c语言,则无需特殊处理;

若cpp文件使用了如std命名空间等c++内容,则在gcc选项中需要链接上相关c++库;

例如:使用gcc编译名为 test.cpp 的c++程序,其中使用了std命名空间:

gcc test.cpp -lstdc++ -o test

-l:gcc的链接选项 ,将c++标准库的stdc++链接上

 

3 gcc常见选项

无选项:在准备编译的文件目录下生成可执行文件 a.out ,例如:gcc test.c

-x:告诉gcc源文件的语言,若不使用,则默认根据文件后缀判断语言,例如:gcc -x c test.fuck ,“c”处还可为:c++  ,assembler ,c-header ,objective-c ,等

-o:用于指定结果名称

-c:告诉gcc只进行编译和汇编,不进行链接,将生成一个不可执行的 .o 文件,例如:gcc -c test.cpp

-I(大写i):指定头文件所在文件夹路径,语法:-I dirPath 。若源代码使用尖括号包含头文件,gcc首先在-I指定的目录下寻找,再到标准默认路径/usr/local/include下搜索,再到标准默认路径/usr/include下搜索,再搜索不到就报错;若使用双引号包含的头文件,gcc先在当前工作目录寻找,再到上述三个目录寻找。例如:gcc test.cpp -I /fuck/inc -o test

-include:有时候源程序没有写包含头文件的代码却使用了头文件内容,可以考虑是在gcc编译阶段进行了包含,使用方法: gcc [srcfile] -include [headfile],例如:gcc test.cpp -include /fuck/inc/test.h -o test

-Wall:显示所有警告信息,例如:gcc test.cpp -Wall -o test

-g:可以产生供gdb调试的可执行文件,例如:gcc test.cpp -g -o test

-pg:可以产生供gprof剖析用的可执行文件,用于性能分析

-l:用于链接动态链接库,用法是直接加上库名字,例如:gcc test.cpp -lstdc++ -o test

 

4 g++的基本使用

g++与gcc类似,,有相同的语法结构和选项,专用于编译c++文件,且能自动链接c++标准库,更为方便。

编译多个c++程序:g++ test1.cpp test2.cpp -o test

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

gcc与g++的使用 的相关文章

随机推荐

  • 在windows上编译Inlong所遇到的问题

    1 Hadoop相关的问题 在windows中 由于Inlong的很多单元测试用例都需要用到hadoop的相关组件进行测试 可以采用winunits配合测试 winutils是windows上专门配合hadoop和yarn测试的工具 在gi
  • Windows Server 2012 R2无法正常安装vmtools

    情形 在VMWare虚拟机上安装Windows Server 2012之 后安装VMWare Tools时报如下错误信息 解决方法 在VMWare虚拟机中的Windows Server 2012操作系统上安装Windows8 1 KB291
  • element admin 中动态设置快捷导航(标签栏导航)meta标签和title标签

    因为和原生的交互是需要h5这边来提供meta标签的来是来判断要不要显示分享按钮 所有就需要手动设置meta标签 标题和内容 这种情况就是我的左侧菜单只有一个 但是我在列表页面打开每一个连接的时候 都是新开一个标签栏导航 标题是自定义的 比如
  • java项目切换数据库Mysql到Oracle 11g(包含表结构转换与数据迁移)

    0 前言 最近公司要求把项目数据库从mysql换成Oracle 目前总算是快完成了 就写个帖子记录下遇到的问题 网上的教程五花八门 同时给一些也在寻找方法的人一些帮助 有什么问题可以在评论里讨论 使用sqldeveloper迁移表和数据比c
  • window.addEventListener监听事件在vue组件中使用

    最近在搞收银台页面调用终端机的项目 上面领导只是给了一个原生js的demo 让用vue写页面 搞了一天没怎么出成果 最后是监听事件的锅 别的不多说 直接上代码 写在created里面就好了 ok啦 注意 有个坑 event那里必须写成箭头函
  • 融云猿桌派备忘录,那些被程序员 Pick 的工作方式

    3 月 10 日 猿桌派 第 2 季第 1 期正式开播 关注 融云全球互联网通信云 了解更多 节目主理人融云技术 VP 臧其龙与 Grab 高级研发宋清晨 VMware iOS MacOS 开发尚传人就 中外互联网公司面面观 展开讨论 嘉宾
  • js 判断数据类型最常用的方法

    1 最常用方法 typeof typeof 是最常用判断数据类型的方法 只能判断基本数据类型 返回值有7种 number string boolean null undefined symbol es6新增 2 判断对象类型 instanc
  • 字节跳动头条2022测试开发岗 3+1 面经+经验分享(收到offer,入职月薪30K)

    现在 招聘黄金时间已经来临 在网上看了很多大佬的面经 也加了很多交流群 受到了很多朋友的提点 今天终于轮到我来分享面经啦 之前面试了几家公司 最后在八月初拿到了字节跳动测试岗的 offer 这里总结一下自己的面经和复习历程 顺便谈谈我的一些
  • php基础控制器,HTTP控制器

    HTTP控制器 由 学院君 创建于4年前 最后更新于 1年前 版本号 1 7403 views 4 likes 0 collects 1 简介 将所有的请求处理逻辑都放在单个routes php中肯定是不合理的 你也许还希望使用控制器类组织
  • java http 传输中的转义_小猿圈Java学习-URL地址的组成格式

    URL的全称是Uniform Resource Locator 意思是统一资源定位符 俗称网络地址或网址 网络上的每个文件及接口 都有对应的URL网址 它规定了其他设备如何通过一系列的路径找到自己 犹如网购的包裹一路送至收货地址所描述的地点
  • 疯壳-鸿蒙OS-工具安装指南

    1 将Linux shell改为bash 1 查看shell是否为bash 在终端运行如下命令 ls l bin sh 如果为显示为 bin sh gt bash则为正常 否则请按以下方式修改 方法一 在终端运行如下命令 然后选择 no s
  • Weblogic远程代码执行漏洞(CVE-2020-14645)

    简介 WebLogic是美国Oracle公司出品的一个application server 确切的说是一个基于JAVAEE架构的中间件 WebLogic是用于开发 集成 部署和管理大型分布式Web应用 网络应用和数据库应用的Java应用服务
  • Linux进程间通信机制

    Linux下的通信手段基本上是从Unix平台上的进程通信机制继承而来 Linux下的进程通信通信机制主要包括 管道 Pipe 及有名管道 named pipe 管道可用于具有亲缘关系进程间的通信 有名管道克服了管道没有名字的限制 因此 除具
  • C语言之求两个整数之和。

    思路 定义三个变量 a b sum a和b用来存放两个加数 sum用来存放和 include
  • C语言—循环结构的总结

    循环结构的三种基本结构 特点 在给定条件成立时 反复执行每段程序 直到条件不成立为止 一次又一次的执行相同代码 1 while循环 基本框架 表达式1 while 表达式2 语句 表达式3 lt 1 gt while后面的语句称为循环体 l
  • 现代密码学-传统密码技术(置换、代换密码)

    目录 置换密码 换位密码 列置换 周期置换 代换密码 单表代换密码 多表代换密码 参考 置换密码 换位密码 置换密码 Permutation Cipher 又叫换位密码 Transposi tionCipher 它根据一定的规则重新排列明文
  • 管理_立项任务书怎么写——毛宇菲

    内容转自公众号 硬件十万个为什么 作者 毛宇菲 当一个项目的很多细节点存在疑问的时候 那就说明这是一个 没有想清楚的项目 了 类似的有 项目目标不能量化 结果不可测量 投入资源不能衡量 等等问题 如何从源头上规避 没想清楚的项目 呢 第一
  • 闭包Closure

    x xxx 概念 控制台打断点 闭包的作用 return外部函数使用内部变量 当闭包形成时下的写法才有用 闭包的经典样式
  • 微信订单管理软件列表支持小程序(逻辑猫订货系统)

    订货信息管理系统 订货系统的作用 在线订单管理系统 订货系统又名 订单管理系统 订单管理系统分为销售订单和订货订单 这里的订货系统信息管理用于厂家的客户进行订货 并非商城 客户可通过订货端进行订货 订货系统支持的版本 订货系统 订单信息管理
  • gcc与g++的使用

    1 gcc编译器的基本语法格式如下 gcc 选项 准备编译的文件 选项 目标文件 例如 编译名为 test c 的c程序 gcc test c o test 2 若使用gcc编译器编译c 程序 与编译c程序略有不同 若cpp文件中未使用任何