gpt4 book ai didi

gcc - 使用 gccgo 构建 Go - fork/exec 没有这样的文件或目录

转载 作者:IT王子 更新时间:2023-10-29 02:22:09 25 4
gpt4 key购买 nike

我正在尝试在 RHEL 6.8 上运行一个简单的 helloworld.go。

% cat helloworld.go 
package main
import "fmt"
func main() {
fmt.Println("hello world")
}

GC 编译器工作正常

%  go build -compiler gccgo helloworld.go 
go build command-line-arguments: : fork/exec : no such file or directory

出于某种原因,相反,我需要使用 gccgo 进行编译,但始终无法编译。更不用说最终静态编译它了。

% go build -compiler gccgo -gccgoflags '-static' helloworld.go
go build command-line-arguments: : fork/exec : no such file or directory
% go build -compiler gccgo -gccgoflags '-static-libgo' helloworld.go
go build command-line-arguments: : fork/exec : no such file or directory


% go version
go version go1.7 linux/amd64
% gcc --version
gcc (GCC) 4.9.2 20150212 (Red Hat 4.9.2-6)

如果您能深入了解问题所在,我们将不胜感激?

最佳答案

你应该先安装gccgo编译器。在我的 Fedora 26 桌面上,运行 dnf install gcc-go 进行安装。


$哪个gccgo
/usr/bin/gccgo
去构建——编译器 gccgo -x
工作=/tmp/go-build848309745
mkdir -p $WORK/_/home/sam/sandbox/go/src/hello/_obj/
mkdir -p $WORK/_/home/sam/sandbox/go/src/hello/_obj/exe/
cd/home/sam/sandbox/go/src/你好
/usr/bin/gccgo -I $WORK -c -g -m64 -fgo-relative-import-path=_/home/sam/sandbox/go/src/hello -o $WORK/_/home/sam/sandbox/go/src/hello/_obj/_go_.o ./helloworld.go
ar rc $WORK/_/home/sam/sandbox/go/src/libhello.a $WORK/_/home/sam/sandbox/go/src/hello/_obj/_go_.o
光盘。
/usr/bin/gccgo -o $WORK/_/home/sam/sandbox/go/src/hello/_obj/exe/a.out $WORK/_/home/sam/sandbox/go/src/hello/_obj/_go_.o -Wl,-( -m64 -Wl,--whole-archive -Wl,--no-whole-archive -Wl,-)
cp $WORK/_/home/sam/sandbox/go/src/hello/_obj/exe/a.out 你好

如果需要静态链接,则还需要安装 glibc-static 和 libgo-static 包。安装后,使用 gccgo 编译并通过

静态链接


$ go build -compiler gccgo -x --gccgoflags "-static"
工作=/tmp/go-build815863722
mkdir -p $WORK/_/home/sam/sandbox/go/src/hello/_obj/
mkdir -p $WORK/_/home/sam/sandbox/go/src/hello/_obj/exe/
cd/home/sam/sandbox/go/src/你好
/usr/bin/gccgo -I $WORK -c -g -m64 -fgo-relative-import-path=_/home/sam/sandbox/go/src/hello -o $WORK/_/home/sam/sandbox/go/src/hello/_obj/_go_.o -static ./helloworld.go
ar rc $WORK/_/home/sam/sandbox/go/src/libhello.a $WORK/_/home/sam/sandbox/go/src/hello/_obj/_go_.o
光盘。
/usr/bin/gccgo -o $WORK/_/home/sam/sandbox/go/src/hello/_obj/exe/a.out $WORK/_/home/sam/sandbox/go/src/hello/_obj/_go_.o -Wl,-( -m64 -Wl,--whole-archive -Wl,--no-whole-archive -Wl,-) -static
cp $WORK/_/home/sam/sandbox/go/src/hello/_obj/exe/a.out 你好

关于gcc - 使用 gccgo 构建 Go - fork/exec 没有这样的文件或目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42867659/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com