如何解决gccgo-cross-compile无法编译cgo
我正在尝试使用gccgo编译一个简单的go程序。我的代码使用cgo,gccgo无法编译它。这是我的代码(使用go编译器进行编译):
package main
// #include <stdio.h>
// #include <stdlib.h>
//
// static void myprint(char* s) {
// printf("%s\n",s);
// }
import "C"
import "fmt"
func main(){
fmt.Println("Start")
cs := C.CString("Print from C")
C.myprint(cs)
fmt.Println("End")
}
当我使用gccgo main.go -o gccoutput
编译代码时,我得到:
main.go:9:9: error: import file ‘C’ not found
import "C"
^
main.go:13:8: error: reference to undefined name ‘C’
cs := C.CString("Print from C")
^
main.go:14:2: error: reference to undefined name ‘C’
C.myprint(cs)
^
有什么办法解决这个问题吗?
编辑: 我正在尝试使用gccgo编译为ppc,并且我不想使用go编译器的交叉编译过程。我已尝试做(如评论中所建议):
go build -compiler=gccgo
成功了。您,当我这样做时:
go build -comiler=powerpc-linux-gnu-gccgo main.go
我得到:
invalid value "powerpc-linux-gnu-gccgo" for flag -compiler: unknown compiler "powerpc-linux-gnu-gccgo"
usage: go build [-o output] [-i] [build flags] [packages]
Run 'go help build' for details.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。