將Go 程式碼整合到現有的C 專案中
問題:
是否可以呼叫Go代碼來自 C程序,如果是這樣,這怎麼可能
答案:
是的,Go 1.5 引入了-buildmode=c-archive 模式,該模式允許將Go 程式碼編譯成適合連結到C 程式的存檔。要將Go 程式碼整合到現有的C 專案中:
標記要匯出的函數:
編譯去存檔:
使用以下指令將 Go 程式碼編譯為 C>
go build -buildmode=c-archive foo.go
連結 C程式:
#include "foo.h"
gcc -pthread foo.c foo.a -o foo
範例:
package main import "C" import "fmt" //export PrintInt func PrintInt(x int) { fmt.Println(x) } func main() {}
#include "foo.h" int main(int argc, char **argv) { PrintInt(42); return 0; }
gcc -pthread foo.c foo.a -o foo
以上是如何將 Go 程式碼整合到我現有的 C 專案中?的詳細內容。更多資訊請關注PHP中文網其他相關文章!