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 (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...