Golang1.8編譯靜態庫給C使用

Go實例代碼:

package main

import (
    "fmt"
)

import "C"

//export Printf
func Printf(format, str string) {
    fmt.Printf(format, str)
}

func main(){}

編譯命令:
go build -ldflags “-s -w” -buildmode=c-archive -o printf.a main.go

生成:printf.a printf.h兩個文件

C代碼實例:

#include "printf.h"

void main()
{
    char fm[8]="Age:%s\n";
    GoString format={fm,sizeof(fm)};
    GoString values={"25",2};
    Printf(format,values);
}

編譯命令:
linux 編譯命令:gcc main.c printf.a -L. -o main -lpthread -s
windows:編譯命令:gcc -o main.exe 1.c libprint.a -lwinmm -lstdc++ -lws2_32 -lntdll
生成:main main.exe

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章