猿问

如何使用gccgo导入非标准库软件包

首先,所有这些代码都可以使用go工具成功构建(例如go build,go install)


可以说我有一个a.go尝试从github导入非标准库pkg:


package a


import (

    "fmt"

    "github.com/usr/pkg"

)


func init() {

    fmt.Println("Import pkg", pkg.somevar)

}

当我尝试使用gccgo进行编译时:


$ gccgo -c a.go

a.go:5:20: error: import file ‘github.com/usr/pkg’ not found

...

然后我阅读了设置和使用gccgo,它说


当您使用gccgo导入软件包FILE时,它将在以下文件中查找导入数据,并使用找到的第一个文件。


FILE.gox FILE.o libFILE.so libFILE.a


gccgo编译器将在当前目录中查找导入文件


因此,我将$ GOPATH / pkg / github.com / usr / pkg.a cp到当前目录,并将其重命名为libpkg.a。


似乎又失败了:


$ gccgo -c a.go

a.go:9:4: error: libpkg.a: malformed archive header name at 8

a.go:9:4: error: libpkg.a exists but does not contain any Go export data

是的,我使用gccgo 4.7.2


我没有使用gcc的经验,所以我在这里寻求帮助。


呼唤远方
浏览 273回答 1
1回答

翻过高山走不出你

最简单的方法是使用gc发行版中的go命令,然后运行 go build -compiler gccgo .您复制pkg.a的想法无效,因为pkg.a不是使用gccgo构建的。
随时随地看视频慕课网APP

相关分类

Go
我要回答