gpt4 book ai didi

go - CGO未在Mac OS上生成头文件

转载 作者:行者123 更新时间:2023-12-01 22:22:35 24 4
gpt4 key购买 nike

我在Win 10上运行以下代码,并同时生成了liblib.h,在Mac上尝试了相同的操作,但仅生成了lib,而lib.h却没有出现!

// file: lib/go.mod

module hasan/lib

go 1.14



// file: lib/main.go
package main

import "fmt"

//export HelloWorld
func HelloWorld() {
fmt.Printf("hello world")
}

func main() {}

并将其构建为:

$ go build -buildmode=c-shared

没有错误显示

最佳答案

错误是由于缺少:

import "C"
lib/main.go中,这是负责生成适当的头文件 lib.h的代码
示例
创建Go文件 lib.go
package main

import "C"
import "fmt"

//export HelloWorld
func HelloWorld() {
fmt.Printf("hello world from GO\n")
}

func main() {}
编译为:
go build -o lib.so -buildmode=c-shared lib.go
然后 app.c为:
#include<stdio.h>
#include "lib.h"

int main(){
HelloWorld();
printf("Hello from c\n");
return 0;
}
并将其编译(并生成可执行文件)为:
cc -o output app.c lib.so
并将 output称为:
Hasans-Air:Documents hajsf$ ./output
hello world from GO
Hello from c

关于go - CGO未在Mac OS上生成头文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62238092/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com