最近在弄專題時,想說在一個比較單純的環境裡做測試,就挑了 Alpine Linux 來用。結果在編譯時跑 bindgen 吃了不少苦頭。 最一開始是這樣的,bindgen 會回報說無法動態載入 clang 的 shared library,錯誤訊息是 Dynamic loading not supported 。 幸好,bindgen 有提供 static 的 feature 可以用 cargo install --no-default-features --features static,logging,clap,which-rustfmt bindgen但是裝起來之後,一下指令就 Segmentation fault 是怎麼回事?? Debug 了一下就發現,他的 GOT 並沒有 relocate 到正確的地址上,查了很久才發現 rust