首頁 > 後端開發 > Golang > 如何將Go程式碼整合到現有的C專案中?

如何將Go程式碼整合到現有的C專案中?

Barbara Streisand
發布: 2024-12-20 17:23:14
原創
386 人瀏覽過

How Can I Integrate Go Code into Existing C Projects?

將Go 程式碼整合到現有的C 專案中

在Go 1.5 之前,將Go 程式碼整合到C 專案中是一項挑戰。但是,隨著 -buildmode=c-archive 標誌的引入,可以從 C 程式中呼叫 Go 程式碼。

要產生與 C 程式碼連結所需的頭檔和存檔,請依照下列步驟操作步驟:

  1. 使用要公開給 C 的函數建立一個 Go 原始檔。
  2. 使用//export 標記導出的函數
  3. 使用以下命令建立C 可呼叫靜態庫:
go build -buildmode=c-archive <Go_source_file>.go
登入後複製

這將產生一個存檔(例如foo .a)和一個頭檔(例如,foo.h)。

在您的 C 程式碼中,包含產生的頭檔並使用 CGo 命名後的匯出函數慣例。例如:

#include "foo.h"

int main(int argc, char **argv) {
    PrintInt(42);
    return 0;
}
登入後複製

要編譯C 程序,請使用以下指令:

gcc -pthread foo.c foo.a -o foo
登入後複製

附加說明:

  • Go 來源文件中的main 函數是必需的,即使是空的。
  • 使用 -pthread當 Go 執行緒時編譯 C 程式時的選項。
  • 在建置程式庫時,您可以分別使用 -o 和 -I 標誌指定輸出檔案和頭檔名稱。

以上是如何將Go程式碼整合到現有的C專案中?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板