從 glibc 到 musl : 靜態編譯上的新選擇
前言
在 Go 世界裡,可移植性 一直是它引以為傲的特性。大部分時候,我們只要 go build
就能得到一個幾乎純靜態的二進位,拿去其他機器執行也不太會出問題。然而,這種「幾乎」背後,跟 cgo
和 cmd/link
的運作有很大關係。本文將以 cgo 為核心,延伸到 linkmode 與 musl-gcc 的應用,帶同學們理解 Go 執行檔在靜態與動態鏈結上的差異。
心之所至,隨意亂書
共有 3 篇文章使用了此標籤
在 Go 世界裡,可移植性 一直是它引以為傲的特性。大部分時候,我們只要 go build
就能得到一個幾乎純靜態的二進位,拿去其他機器執行也不太會出問題。然而,這種「幾乎」背後,跟 cgo
和 cmd/link
的運作有很大關係。本文將以 cgo 為核心,延伸到 linkmode 與 musl-gcc 的應用,帶同學們理解 Go 執行檔在靜態與動態鏈結上的差異。
在撰寫 Go 程式的過程中,有時候我們會遇到這樣的情境:某些功能已經有穩定的 C 函式庫可以使用,若能直接呼叫這些現有資源,就能避免重複造輪子。
Go 語言本身提供了 cgo
這個工具,讓我們能順利地在 Go 程式中嵌入並呼叫 C 程式碼。
本文會帶你從基礎開始認識 cgo
,並透過範例說明如何在 Go 專案中使用它。
今年的 COSCUP 因應 COVID-19 疫情,所以以線上直播的方式進行。本篇主要是記錄大會第一天有興趣的議程以及關鍵字。