Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cmd/go: cgo cc1.exe: fatal error: opening output file 2: Permission denied #48999

Closed
nfsq246 opened this issue Oct 15, 2021 · 2 comments
Closed

Comments

@nfsq246
Copy link

nfsq246 commented Oct 15, 2021

What version of Go are you using (go version)?

$ go version
go version go1.17.2 windows/amd64

Does this issue reproduce with the latest release?

Yes

What operating system and processor architecture are you using (go env)?

go env Output
$ go env
set GO111MODULE=on
set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\Users\ChenHN\AppData\Local\go-build
set GOENV=C:\Users\ChenHN\AppData\Roaming\go\env
set GOEXE=.exe
set GOEXPERIMENT=
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOINSECURE=git.iot
set GOMODCACHE=D:\go3\pkg\mod
set GONOPROXY=git.iot
set GONOSUMDB=git.iot
set GOOS=windows
set GOPATH=D:\go3
set GOPRIVATE=git.iot
set GOPROXY=https://goproxy.cn,direct
set GOROOT=D:\Program Files\Go
set GOSUMDB=off
set GOTMPDIR=
set GOTOOLDIR=D:\Program Files\Go\pkg\tool\windows_amd64
set GOVCS=
set GOVERSION=go1.17.2
set GCCGO=gccgo
set AR=ar
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set GOMOD=D:\Program Files\Go\src\go.mod
set CGO_CFLAGS=-g -o2
set CGO_CPPFLAGS=-g -O2
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-m64 -mthreads -fmessage-length=0 -fdebug-prefix-map=C:\Users\ChenHN\AppData\Local\Temp\go-build613208781=/tmp/go-build -gno-record-gcc-switches

What did you do?

package main
/*
int add(int a,int b){
	return a+b;
}
 */
import "C"
import "fmt"

func main() {
	fmt.Println(int(C.add(C.int(1),C.int(2))))
}

What did you expect to see?

build successfully

What did you see instead?

$ D:\go2\src\gb_test>go build -x -o text.exe gb_test
WORK=C:\Users\ChenHN\AppData\Local\Temp\go-build2706563000
mkdir -p $WORK\b041\
cd D:\Program Files\Go\src\runtime\cgo
TERM='dumb' CGO_LDFLAGS='"-g" "-O2"' "D:\\Program Files\\Go\\pkg\\tool\\windows_amd64\\cgo.exe" -objdir "$WORK\\b041\\" -importpath runtime/cgo -import_runtime_cgo=false -import_syscall=false -- -g -O2 -I "$WORK\\b041\\" -g -o2 -Wall -Werror "D:\\Program Files\\Go\\src\\runtime\\cgo\\cgo.go"
# runtime/cgo
cc1.exe: fatal error: opening output file 2: Permission denied
compilation terminated.

I tried reinstalling golang,restat computer , close windows defender , add the GOCACHE dir and GOTMPDIR dir to Trust zone , clear GOCACHE dir and GOTMPDIR dir and GOMODCACHE dir , but it still doesn't work .
when i use admin rights , it still doesn't work .

# admin rights
$ D:\go2\src\gb_test>go build -x -o text.exe gb_test
WORK=C:\Users\ChenHN\AppData\Local\Temp\go-build4202487223
mkdir -p $WORK\b001\
cd D:\go2\src\gb_test
TERM='dumb' CGO_LDFLAGS='"-g" "-O2"' "D:\\Program Files\\Go\\pkg\\tool\\windows_amd64\\cgo.exe" -objdir "$WORK\\b001\\" -importpath gb_test -- -g -O2 -I "$WORK\\b001\\" -g -o2 "D:\\go2\\src\\gb_test\\main.go"
# gb_test
cgo: cannot parse gcc output $WORK\b001\\_cgo_.o as ELF, Mach-O, PE, XCOFF object

But it only work in goland ide debug model

# debug model 
GOROOT=D:\Program Files\Go #gosetup
GOPATH=D:\go3 #gosetup
"D:\Program Files\Go\bin\go.exe" build -o D:\go2\src\gb_test\gb_test.exe -gcflags "all=-N -l" gb_test #gosetup
"D:\Program Files\JetBrains\GoLand 2021.2.3\plugins\go\lib\dlv\windows\dlv.exe" --listen=127.0.0.1:1081 --headless=true --api-version=2 --check-go-version=false --only-same-user=false exec D:\go2\src\gb_test\gb_test.exe -- -a #gosetup
API server listening at: 127.0.0.1:1081
3
# run model 
GOROOT=D:\Program Files\Go #gosetup
GOPATH=D:\go3 #gosetup
"D:\Program Files\Go\bin\go.exe" build -o D:\go2\src\gb_test\gb_test.exe gb_test #gosetup
# gb_test
cgo: cannot parse gcc output $WORK\b001\\_cgo_.o as ELF, Mach-O, PE, XCOFF object
@seankhliao
Copy link
Member

Unlike many projects, the Go project does not use GitHub Issues for general discussion or asking questions. GitHub Issues are used for tracking bugs and proposals only.

For questions please refer to https://github.com/golang/go/wiki/Questions

@nfsq246
Copy link
Author

nfsq246 commented Oct 16, 2021

Unlike many projects, the Go project does not use GitHub Issues for general discussion or asking questions. GitHub Issues are used for tracking bugs and proposals only.

For questions please refer to https://github.com/golang/go/wiki/Questions

sorry,my mistake,this is stack overflow question link https://stackoverflow.com/questions/69584784 to track the problem.

@golang golang locked and limited conversation to collaborators Oct 16, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

3 participants