我正在为太阳能/SPARC 环境编译项目文件。Solaris 正式不支持 Elastic 工具。
Neamoins,有这个问题的规避/通过 gccgo 编译。我实际上准备了我的 gccgo 编译器。我可以编译一个小项目(带有单个文件 hello.go),如下所示。但是一旦我尝试编译 filebeat 项目,它就不起作用。可能是依赖问题。我不太了解。如果有人可以帮助我。谢谢
命令:去构建 --compiler gccgo --gccgoflags "-v -static-libgo -Wl,-dy -lnsl -lsocket -lrt -lsendfile"
示例 1:
xxxx@ubuntu:~/Documents/GCC$ cat hello.go
package main
import "fmt"
func main() {
fmt.Println("hello world")
}
morosus@ubuntu:~/Documents/GCC$ gccgo -m64 -v -static-libgo -o hello hello.go
-Wl,-dy -lnsl -lsocket -lrt -lsendfile
Using built-in specs.
COLLECT_GCC=gccgo
COLLECT_LTO_WRAPPER=/opt/cross/libexec/gcc/sparc-sun-solaris2.10/8.1.0/lto-wrapper
Target: sparc-sun-solaris2.10
elf64_sparc
COLLECT_GCC_OPTIONS='-m64' '-v' '-o' 'hello' '-shared-libgcc'
xxxxxx@ub
它工作得很好,但是,
示例 2
xxxx@ubuntu:~/go/src/github.com/elastic/beats/filebeat$ go build --compiler gccgo --gccgoflags "-v -static-libgo -Wl,-dy -lnsl -lsocket -lrt -lsendfile"
# github.com/elastic/beats/libbeat/plugin
../libbeat/plugin/load.go:25:2: error: import file ‘plugin’ not found
goplugin "plugin"
^
../libbeat/plugin/load.go:29:12: error: reference to undefined name ‘goplugin’
p, err := goplugin.Open(path)
^
# github.com/elastic/beats/vendor/github.com/elastic/go-seccomp-bpf
../vendor/github.com/elastic/go-seccomp-bpf/seccomp_linux.go:59:22: error: reference to undefined identifier ‘syscall.SockFprog’
program := &syscall.SockFprog{
这就是我卡住的地方
谢谢你