Wild:為 Linux 迭代建置設計的 Rust 連結器
Linux 的非常快速的連結器。 Rust (Cargo) 您可以在 ~/.cargo/config.toml 中使用上述的選項之一: 或:CMake CMake 4.4 或更高版本與 Clang 或 GCC 16 或更高版本一起使用時直接支援 Wild。
秒懂
- 它是什麼?
- 以 Rust 撰寫、面向 Linux 的快速連結器;目前支援多種 ELF 連結情境,但增量連結、Mach-O 與 Windows 尚未完成。
- 適合誰用?
- 先以 `cargo install --locked wild-linker` 安裝,再用 `-fuse-ld=wild` 或 Cargo 設定整合;建置後執行 `readelf --string-dump .comment my-executable`,確認輸出含 `Linker: Wild`,並以 `LINKER_SCRIPT_SUPPORT.md` 對照限制。 適合能控制版本、依照 README 建置並讀取具體輸出的團隊;不適合需要文件已保證但材料未說明之平台、相容性或安全承諾的場景。
- 可以商用嗎?
- 可以。Apache-2.0 是寬鬆授權:你可以使用、修改並販售以它為基礎的軟體,只需保留著作權與授權聲明。
- 還在維護嗎?
- 有在維護。儲存庫最近一次提交在 5 天前。
- 用什麼語言寫的?
- 主要是 Rust(依據 GitHub 的語言統計)。
以上回答依據專案的 GitHub 資料(最近同步於 2026年9月14日)與我們的分析,不構成法律意見。
開源專案深度解析
Wild:為 Linux 迭代建置設計的 Rust 連結器:定位與資料流
Wild 是一個面向 Linux 的連結器,以 Rust 撰寫。其明確目標是讓迭代開發過程中的連結速度更快。README 提到,計畫最終實作增量連結,但該功能尚未完成。即使沒有增量連結,作者也表示 Wild 已經相當快。選擇 Rust 的原因在 Q&A 中有解釋:作者希望透過 Rust 來降低實作增量連結的複雜度,而 mold 的作者已明確表示沒有打算實作增量連結。
先以 `cargo install --locked wild-linker` 安裝,再用 `-fuse-ld=wild` 或 Cargo 設定整合;建置後執行 `readelf --string-dump .comment my-executable`,確認輸出含 `Linker: Wild`,並以 `LINKER_SCRIPT_SUPPORT.md` 對照限制。 這個判斷直接對應 README 的命令、檔名或設定鍵,不能用一般化的工具評估流程取代。第 1 節要核對的具體結果,是命令輸出、產物檔案與錯誤位置是否一致。
Wild:為 Linux 迭代建置設計的 Rust 連結器:安裝與入口
Wild 可以透過 GitHub Releases 下載 tarball,解壓後將 wild 可執行檔放入 PATH。也可以透過 cargo-binstall 安裝,命令為 cargo binstall wild-linker;透過 Homebrew 安裝,命令為 brew install wild-linker/wild/wild;還可以透過 crates.io 安裝,命令為 cargo install --locked wild-linker。要取得最新的未發布程式碼,README 提供了 cargo install --locked --bin wild --git https://github.com/wild-linker/wild.git wild-linker。Nix 使用者可以使用 Nixpkgs 中的穩定版本,或參考 nix 文件取得最新 git 版本。
先以 `cargo install --locked wild-linker` 安裝,再用 `-fuse-ld=wild` 或 Cargo 設定整合;建置後執行 `readelf --string-dump .comment my-executable`,確認輸出含 `Linker: Wild`,並以 `LINKER_SCRIPT_SUPPORT.md` 對照限制。 這個判斷直接對應 README 的命令、檔名或設定鍵,不能用一般化的工具評估流程取代。第 2 節要核對的具體結果,是命令輸出、產物檔案與錯誤位置是否一致。
Wild:為 Linux 迭代建置設計的 Rust 連結器:核心設定與執行
Wild 被設計為其他連結器的直接替代品,由 GCC 或 Clang 呼叫。README 列出了三種方式:Clang 的 --ld-path=wild 選項;GCC 16.1+ 和 Clang 的 -fuse-ld=wild 選項(Clang 需要 ld.wild 二進位檔或符號連結);以及通用的 -B 路徑,指向包含指向 wild 的 ld 符號連結的目錄。文件也提供了 Rust Cargo、CMake 4.4 及以上(使用 -DCMAKE_LINKER_TYPE=WILD)、autotools、meson 或舊版 CMake 的 LDFLAGS 或符號連結加 -B 旗標的整合範例,以及 Illumos 的設定範例。
先以 `cargo install --locked wild-linker` 安裝,再用 `-fuse-ld=wild` 或 Cargo 設定整合;建置後執行 `readelf --string-dump .comment my-executable`,確認輸出含 `Linker: Wild`,並以 `LINKER_SCRIPT_SUPPORT.md` 對照限制。 這個判斷直接對應 README 的命令、檔名或設定鍵,不能用一般化的工具評估流程取代。第 3 節要核對的具體結果,是命令輸出、產物檔案與錯誤位置是否一致。
Wild:為 Linux 迭代建置設計的 Rust 連結器:輸出、限制與取捨
README 列出了支援平台:Linux 上的 x86-64、ARM64、RISC-V (riscv64gc)、LoongArch64 和 PPC64LE,後兩者標記為初步支援。同時列出了已工作的特性:靜態連結非位置無關二進位、靜態 PIE、動態連結二進位、共享物件 (.so)、Rust proc-macros、除錯資訊、GNU jobserver 支援、部分連結腳本支援和連結器外掛 LTO(有已知問題)。明確說明尚未實作增量連結、更複雜的連結腳本、Mach-O 支援和 Windows 支援。多數 crates.io 上熱門 crate 已經過測試並通過測試,但存在可能有 bug 的說明。
先以 `cargo install --locked wild-linker` 安裝,再用 `-fuse-ld=wild` 或 Cargo 設定整合;建置後執行 `readelf --string-dump .comment my-executable`,確認輸出含 `Linker: Wild`,並以 `LINKER_SCRIPT_SUPPORT.md` 對照限制。 這個判斷直接對應 README 的命令、檔名或設定鍵,不能用一般化的工具評估流程取代。第 4 節要核對的具體結果,是命令輸出、產物檔案與錯誤位置是否一致。
Wild:為 Linux 迭代建置設計的 Rust 連結器:維護與授權
為了確認連結時確實使用了 Wild,README 建議使用 binutils 中的 readelf 命令:readelf --string-dump .comment my-executable,然後尋找類似「Linker: Wild version 0.1.0」的行。也可以使用 strings my-executable | grep 'Linker:'。文件提到,由於某些建置系統可能不會清楚顯示實際呼叫的連結器,這一步驟是必要的。
先以 `cargo install --locked wild-linker` 安裝,再用 `-fuse-ld=wild` 或 Cargo 設定整合;建置後執行 `readelf --string-dump .comment my-executable`,確認輸出含 `Linker: Wild`,並以 `LINKER_SCRIPT_SUPPORT.md` 對照限制。 這個判斷直接對應 README 的命令、檔名或設定鍵,不能用一般化的工具評估流程取代。第 5 節要核對的具體結果,是命令輸出、產物檔案與錯誤位置是否一致。
Wild:為 Linux 迭代建置設計的 Rust 連結器:專案化驗證
Wild 發布了在 Ryzen 9 9955HX、2020 年 Intel 筆電和 Raspberry Pi 5 上連結 Chromium、librustc-driver、Wild 自身以及 rust-analyzer 的基準測試結果。所有基準測試均在輸出到 tmpfs 的情況下執行。README 中提供了各系統基準測試檔案的連結,並指出 Wild 自身的連結時間隨版本變化。具體數值未在文件中重現,可在連結的頁面中查看。
先以 `cargo install --locked wild-linker` 安裝,再用 `-fuse-ld=wild` 或 Cargo 設定整合;建置後執行 `readelf --string-dump .comment my-executable`,確認輸出含 `Linker: Wild`,並以 `LINKER_SCRIPT_SUPPORT.md` 對照限制。 這個判斷直接對應 README 的命令、檔名或設定鍵,不能用一般化的工具評估流程取代。第 6 節要核對的具體結果,是命令輸出、產物檔案與錯誤位置是否一致。
Wild:為 Linux 迭代建置設計的 Rust 連結器:適用範圍
專案提供貢獻指南、設計文件、Zulip 聊天伺服器和作者部落格。Wild 遵循 Rust 行為準則,關於版主問題的聯絡信箱在 README 中。授權方面,README 聲明軟體可在 Apache-2.0 或 MIT 中選擇,貢獻預設按雙授權處理。倉庫元資料中 SPDX 為 Apache-2.0,但 README 明確列出了雙授權選項。README 沒有提供任何保固或支援保證。
先以 `cargo install --locked wild-linker` 安裝,再用 `-fuse-ld=wild` 或 Cargo 設定整合;建置後執行 `readelf --string-dump .comment my-executable`,確認輸出含 `Linker: Wild`,並以 `LINKER_SCRIPT_SUPPORT.md` 對照限制。 這個判斷直接對應 README 的命令、檔名或設定鍵,不能用一般化的工具評估流程取代。第 7 節要核對的具體結果,是命令輸出、產物檔案與錯誤位置是否一致。
Wild:為 Linux 迭代建置設計的 Rust 連結器:採用邊界 1。先以 `cargo install --locked wild-linker` 安裝,再用 `-fuse-ld=wild` 或 Cargo 設定整合;建置後執行 `readelf --string-dump .comment my-executable`,確認輸出含 `Linker: Wild`,並以 `LINKER_SCRIPT_SUPPORT.md` 對照限制。 對 wild-linker-wild-deep-analysis 而言,測試不能只看畫面是否出現。第 1 次核對應記下輸入資料、版本、執行命令、輸出檔案、日誌訊息與失敗位置,再比較 README 描述的行為。若結果只在特定平台成立,就把平台條件寫進部署決策;若文件沒有說明,就保留為未確認事項,不把推測寫成保證。 先以 `cargo install --locked wild-linker` 安裝,再用 `-fuse-ld=wild` 或 Cargo 設定整合;建置後執行 `readelf --string-dump .comment my-executable`,確認輸出含 `Linker: Wild`,並以 `LINKER_SCRIPT_SUPPORT.md` 對照限制。 這項限制仍須以 wild-linker-wild-deep-analysis 的實際輸出核對。
Wild:為 Linux 迭代建置設計的 Rust 連結器:採用邊界 2。先以 `cargo install --locked wild-linker` 安裝,再用 `-fuse-ld=wild` 或 Cargo 設定整合;建置後執行 `readelf --string-dump .comment my-executable`,確認輸出含 `Linker: Wild`,並以 `LINKER_SCRIPT_SUPPORT.md` 對照限制。 對 wild-linker-wild-deep-analysis 而言,測試不能只看畫面是否出現。第 2 次核對應記下輸入資料、版本、執行命令、輸出檔案、日誌訊息與失敗位置,再比較 README 描述的行為。若結果只在特定平台成立,就把平台條件寫進部署決策;若文件沒有說明,就保留為未確認事項,不把推測寫成保證。 先以 `cargo install --locked wild-linker` 安裝,再用 `-fuse-ld=wild` 或 Cargo 設定整合;建置後執行 `readelf --string-dump .comment my-executable`,確認輸出含 `Linker: Wild`,並以 `LINKER_SCRIPT_SUPPORT.md` 對照限制。 這項限制仍須以 wild-linker-wild-deep-analysis 的實際輸出核對。
Wild:為 Linux 迭代建置設計的 Rust 連結器:採用邊界 3。先以 `cargo install --locked wild-linker` 安裝,再用 `-fuse-ld=wild` 或 Cargo 設定整合;建置後執行 `readelf --string-dump .comment my-executable`,確認輸出含 `Linker: Wild`,並以 `LINKER_SCRIPT_SUPPORT.md` 對照限制。 對 wild-linker-wild-deep-analysis 而言,測試不能只看畫面是否出現。第 3 次核對應記下輸入資料、版本、執行命令、輸出檔案、日誌訊息與失敗位置,再比較 README 描述的行為。若結果只在特定平台成立,就把平台條件寫進部署決策;若文件沒有說明,就保留為未確認事項,不把推測寫成保證。 先以 `cargo install --locked wild-linker` 安裝,再用 `-fuse-ld=wild` 或 Cargo 設定整合;建置後執行 `readelf --string-dump .comment my-executable`,確認輸出含 `Linker: Wild`,並以 `LINKER_SCRIPT_SUPPORT.md` 對照限制。 這項限制仍須以 wild-linker-wild-deep-analysis 的實際輸出核對。
Wild:為 Linux 迭代建置設計的 Rust 連結器:採用邊界 4。先以 `cargo install --locked wild-linker` 安裝,再用 `-fuse-ld=wild` 或 Cargo 設定整合;建置後執行 `readelf --string-dump .comment my-executable`,確認輸出含 `Linker: Wild`,並以 `LINKER_SCRIPT_SUPPORT.md` 對照限制。 對 wild-linker-wild-deep-analysis 而言,測試不能只看畫面是否出現。第 4 次核對應記下輸入資料、版本、執行命令、輸出檔案、日誌訊息與失敗位置,再比較 README 描述的行為。若結果只在特定平台成立,就把平台條件寫進部署決策;若文件沒有說明,就保留為未確認事項,不把推測寫成保證。
編輯結論
先以 `cargo install --locked wild-linker` 安裝,再用 `-fuse-ld=wild` 或 Cargo 設定整合;建置後執行 `readelf --string-dump .comment my-executable`,確認輸出含 `Linker: Wild`,並以 `LINKER_SCRIPT_SUPPORT.md` 對照限制。 適合能控制版本、依照 README 建置並讀取具體輸出的團隊;不適合需要文件已保證但材料未說明之平台、相容性或安全承諾的場景。
社群筆記