专栏首页乱码三千xcode中三种编译器的区别

xcode中三种编译器的区别

在xcode中有三种编译器供我们选择,分别是GCC、LLVM GCC、LLVM compliler

三者区别

  • GCC :是一套由 GNU 开发的编程语言编译器。Linux/Unix操作系统的标准编译器。编译前端和后端皆使用GCC
  • LLVM GCC:编译前端使用GCC,后端使用LLVM
  • LLVM compliler :编译前端使用Clang,后端使用LLVM

为什么存在三种编译器

苹果公司最开始使用GCC编译器

为了实现对 Objective-C 新特性的支持,苹果公司结合LLVM改进GCC,从而衍生出了一个GCC分支,也就是LLVM GCC

由于LLVM GCC的笨重和局限性,苹果公司从零开始开发了一套自己的编译前端系统Clang,配合LLVM,就有了LLVM GCC

Clang的优势

相比GCC而言:

  • 编译速度快,占用内存小
  • 模块化设计,易于扩展,易于IDE集成
  • 错误提示人性化
  • 产出小

值得一提的是,Android NDKr18开始就已经抛弃GCC,转而采用Clang编译,Clang未来可期

乱码三千-欢迎您的关注

本文分享自微信公众号 - 乱码三千(infree6)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-08-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 「WebRTC」iOS运行AppRTCMobile

    最近在看 iOS 下WebRTC的代码。想在真机上跑一下它的 Demo 程序 AppRTCMobile 看看是什么效果。但在编译并布署到真机上遇到了各种问题。历...

    音视频_李超
  • iOS 编译时间优化

    使用BuildTimeAnalyzer-for-Xcode查看每个编译单元的耗时。

    莫空9081
  • 初识LLVM&Clang-开发Xcode插件

    Xcode现在使用的编译器就是LLVM。LLVM比以前使用的GCC编译器速度快好几倍。并且LLVM可以编译 Kotlin,Ruby,Python,Haskell...

    用户6094182
  • Mac电脑C语言开发的入门帖

    俺踏月色而来
  • iOS开发中的CPU架构问题

    首先,之所以提到CPU架构的问题,其实是因为我们iOS开发使用的静态库与动态库与之紧密相连。每一个开发的App都要运行在模拟器或者真机上,在编译的时候,Xcod...

    梧雨北辰
  • 套壳

    phonegap已经不再是phonegap,而是phonegap build,用来打包的。

    libo1106
  • Module compiled with Swift 5.x cannot be imported by the Swift 5.3 compiler

    Module compiled with Swift 5.2.4 cannot be imported by the Swift 5.3 compiler

    韦弦zhy
  • 通过Xcode命令行编译

    命令行工具包是一个小型独立包,可供下载独立于Xcode的和允许您执行命令行开发OS X,它由两部分组成:OS X SDK和命令行工具,如Clang的,这是安装在...

    君赏
  • 腾讯云语音识别iOS SDK引入介绍

    腾讯云的众多产品都提供了iOS SDK供开发者使用,如何成功调用接口是很多开发者在初次使用腾讯云服务的时候都会面临的问题,以下,我们以调用腾讯云语音识别产品为例...

    Aalto
  • target和scheme、.xcarchive和.ipa的详细解析

    前言 workspace、project、target、scheme,这些基本概念非常容易混淆,特别是经常使用Xcode编译和打包的开发者,往往会忽视这些基础知...

    落影
  • iOS 面试策略之语言工具-Xcode使用

    iOS 开发的官方 IDE 是 Xcode,它也是 Apple 平台最主流的开发工具。目前 Xcode 已经更新到第 9 个版本,功能也是涵盖开发、测试、性能分...

    会写bug的程序员
  • 从预编译的角度理解Swift与Objective-C及混编机制

    本文从预编译的基础知识入手,由浅至深的介绍了 Objective-C 和 Swift 的工作机制,并通过这些机制来解释混编项目中使用到的技术和各种参数的作用,由...

    美团技术团队
  • 在macOS 10.12 上编译 Android 5.1

    felix
  • iOS开发常用之其他

    GuangdongQi
  • VMware中三种网络连接的区别

    VMware中三种网络连接的区别 1、概述 2、bridged(桥接模式) 3、NAT(网络地址转换模式) 4、host-only(主机模式) 5、replic...

    汤高
  • iOS开发入门笔记

    iOS开发入门笔记 本文面向已有其它语言(如Java,C,PHP,Javascript)编程经验的iOS开发初学者,初衷在于让我的同事一小时内了解如何开始开发i...

    xiangzhihong
  • XcodeXcode 9 的全新功能您会喜欢的工具。内建 Interface BuilderXcode IDE

    在 Apple 平台上打造精彩超凡的 app 所需要的一切,Xcode 9 都已为您准备好。即使在编辑最大的文件时,它也能保持超乎想象的高速流畅。它比以往更了解...

    iOSDevLog
  • 手把手教你给一个iOS app配置多个环境变量

    谈到多环境,相信现在大多公司都至少有2-3个app环境了,比如Test环境,UAT(User Acceptance Test)用户验收测试环境,Release环...

    一缕殇流化隐半边冰霜
  • iOS11后32位应用升级

    今天接受了一个改造旧项目的任务,据说项目唯独在iOS11上无法运行。这很容易就让我们想到与最近苹果iOS11放弃支持32位应用的事件有关。确实我在平时开发的项目...

    梧雨北辰

扫码关注云+社区

领取腾讯云代金券