未定义的类型为int的gcc 9.1.0 C类型“ int”

时间:2019-05-10 08:45:46

标签: go gcc solaris gccgo

我从源(GNU)在Solaris 11(SPARC)上构建了gcc 9.1.0。构建进行得很顺利,可以编译并使用CGO免费的Go代码。

使用CGO代码时,无法编译gccgo构建。 引用任何C标准类型(如C.int)的go代码返回错误:

sh> go build ./...
./main.go:18:2: call of non-function C.f
./main.go:18:6: invalid conversion to C.int: undefined C type 'int'

这是无法构建的简单示例代码。

package main

/*
#include <stdio.h>

void f(int i) {
  fprintf(stdout,"INT: %d\n",i);
}
*/
import "C"

import (
        "fmt"
)

func main() {
        // Simple C function call.
        C.f(C.int(1))
        fmt.Println("ABC")
}

在其他平台上,正确引用了C类型。我在gcc编译过程中会错过编译器标志吗?

使用以下命令调用gcc的

configure

../configure --prefix=<path>/gcc-solaris-9.1.0 --enable-languages=c,c++,go,objc,lto

是否有人提示如何在Solaris SPARC上正确构建gccgo? 是否缺少标头包含文件依赖项(在Solaris上需要)?

0 个答案:

没有答案
相关问题