whisper.cpp編譯和安裝到系統(tǒng)環(huán)境

這是因為 whisper.cpp 的 Go 綁定需要 CGO 編譯,并且需要正確鏈接到 whisper.cpp 的 C 庫。錯誤信息顯示找不到 C 的類型定義。

解決方案:

  1. 確保已安裝 whisper.cpp 到系統(tǒng)
# 克隆并編譯 whisper.cpp
git clone https://github.com/ggerganov/whisper.cpp.git
cd whisper.cpp
cmake -B build
cmake --build build -j
sudo cmake --install build  # 安裝到 /usr/local
  1. 設(shè)置 CGO 環(huán)境變量
export CGO_ENABLED=1
export CGO_LDFLAGS="-L/usr/local/lib"
export CGO_CFLAGS="-I/usr/local/include"
export LD_LIBRARY_PATH="/usr/local/lib:$LD_LIBRARY_PATH"
  1. 清理 Go 緩存并重新編譯
cd backend
go clean -cache
go mod tidy
go build
  1. 驗證庫文件存在
ls -l /usr/local/lib/libwhisper.*
ls -l /usr/local/include/whisper.h

如果你使用的是 macOS,可能還需要:

# macOS 使用 Homebrew 安裝可能更簡單
brew install whisper-cpp

# 或者手動指定路徑
export CGO_LDFLAGS="-L/opt/homebrew/lib"
export CGO_CFLAGS="-I/opt/homebrew/include"

注意:whisper.cpp 的 Go 綁定要求本地必須有編譯好的 whisper.cpp C 庫,這就是為什么 Dockerfile.base 中需要編譯安裝 whisper.cpp 的原因。

案例1

#!/bin/bash
# 設(shè)置 whisper.cpp 庫路徑
export DYLD_LIBRARY_PATH="/usr/local/lib:$DYLD_LIBRARY_PATH"
export CGO_ENABLED=1
export CGO_LDFLAGS="-L/usr/local/lib"
export CGO_CFLAGS="-I/usr/local/include"

# 運行應用
go run main.go
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容