深入淺出 Xcode 命令列(2)-xcrun 基礎

Xcode命令列 = Xcode Command Lines Tool

前言

回顧一下上一篇加餐,

1
2
3
4
5
6
7
libxcselect.dylib
->
_xcselect_invoke_xcrun
->
libxcrun.dylib
->
xcrun_main

我們最後發現所有Xcode Command Line 都會先被導向 xcrun_main,也就是 xcrun。

於是xcrun就成了第一個探討對象

Read more

深入淺出 Xcode 命令列(加餐) - libxcselect.dylib

Xcode命令列 = Xcode Command Lines Tool

經過深入淺出 Xcode 命令列(1) - 初探的介紹,我們知道一台mac上可能會有多’組’xcode command line tool.

多組xcode command line tool

且在xcode-select的幫助下,我們能指定某個特定版本的Command Line Tools,然後整台電腦在不需要設定env變量的前提下,就知道該調那個SDK了…. 聽起來很符合直覺,卻有點太玄了…😰

giphy -1-

讓我們稍微深追一下這問題

礙於我的知識有限,所以這篇寫做加餐,咱們點到為止😅

Read more

深入淺出 Xcode Command Lines Tool(1) - 初探

Xcode命令列 = Xcode Command Lines Tool

如果你是一個iOS/Mac Developer 或是你在用Mac開發什麼壞壞的事

你一定對這個畫面不陌生,

截圖 2019-11-13 下午3.44.55

然後我們只需要按下安裝,

截圖 2019-11-13 下午4.25.41

之後就能繼續開發啦!

C1DB1108-AE40-4B01-A717-DD59733E2FD6

本文結束.
.
.
.

Ok, 所以…. 這個Dialog到底幫我們安裝了什麼? 安裝在哪? 為何要安裝?

Read more

年轻人,听说你想使用Framework - 基礎觀念

Frameworks

本文為譯文,並已取得作者Nick Teissler同意。
原文鏈接:原文

Framework這小子問了幾個很好的問題

本文章適合初學Framework的讀者。

前言

Apple 已經將 iOS, macOS 的代碼分成 Modules, libraries, frameworks。

Frameworks 的設計不單單只是為了封裝資源跟模塊化代碼,更不只是為了減少代碼的重編譯時間而已。

要想減輕代碼量、加速Debug、增加代碼復用性,就不能只知道Framework是一個可以拖來拖去的工具箱,必須更近一步的了解這些:

  • 靜態庫 - Static Libraries
  • 動態庫 - Dynamic Libraries
  • Framework的結構
  • Linking 鏈接 與 Embed 嵌入的不同
  • Q & A

以下內容適用 macOS, tvOS, iOS. 可能會隨時間有改動。

Read more

(Xcode) 編譯器小白筆記 - LLVM前端Clang

(Xcode) 編譯器小白筆記 - LLVM前端Clang

本文为笔记型式呈现,并非全部原创,来源见文末

Compiler

Three-Phase编译器架构

Clang - LLVM

Apple(包括中后期的NeXT) 一直使用GCC作为官方的编译器。GCC作为开源世界的编译器标准一直做得不错,但Apple对编译工具会提出更高的要求。

Clang这个软体专案在2005年由苹果电脑发起,是LLVM编译器工具集的前端(front-end),目的是输出程式码对应的抽象语法树(Abstract Syntax Tree, AST),并将程式码编译成LLVM Bitcode。接着在后端(back-end)使用LLVM编译成平台相关的机器语言 。

MDCC2016的 session

Read more
Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×