CGO的使用

编写最简单的输出

Main.go

package main

//#include 
import "C"

func main() {
	C.puts(C.CString("hello\n"))
}

运行

$ go run Main.go 
hello

自定义函数

Main.go

package main

/*
#include 

void hi()
{
    printf("hello,wsdadas\n");
}
*/
import "C"

func main() {
	C.hi()
}

运行

$ go run Main.go 
hello,wsdadas

使用头文件

目录结构

$ ls
go.mod  go.sum  hello.c  hello.h  Main.go

hello.h

#pragma once

void hi();

hello.c

#include "hello.h"

#include 

void hi()
{
    printf("hello,wsdadas\n");
}

Main.go

package main

//void hi();
import "C"

func main() {
	C.hi()
}

运行

$ go run .
hello,wsdadas

使用c++

$ ls
go.mod  go.sum  hello.cpp  hello.h  Main.go

hello.h

#pragma once

void hi();

hello.cpp

#include 

extern "C" {
#include "hello.h"
}

void hi()
{
    std::cout<<"hello,world..."<

Main.go

package main

//void hi();
import "C"

func main() {
	C.hi()
}

运行

$ go run .
hello,world...

你可能感兴趣的:(GO)