[GH-ISSUE #1478] 编译 arm 32 frpc 出错 #1166

Closed
opened 2026-05-05 12:45:01 -06:00 by gitea-mirror · 0 comments
Owner

Originally created by @ethsonliu on GitHub (Oct 23, 2019).
Original GitHub issue: https://github.com/fatedier/frp/issues/1478

What version of frp are you using (./frpc -v or ./frps -v)?

0.27.0

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

hapoa@hapoa-virtual-machine:~/projects/frp/src/github.com/fatedier/frp$ go env
GOARCH="amd64"
GOBIN=""
GOCACHE="/home/hapoa/.cache/go-build"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/hapoa/projects/frp"
GOPROXY=""
GORACE=""
GOROOT="/home/hapoa/packages/local/go-1-12-7"
GOTMPDIR=""
GOTOOLDIR="/home/hapoa/packages/local/go-1-12-7/pkg/tool/linux_amd64"
GCCGO="gccgo"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build293486561=/tmp/go-build -gno-record-gcc-switches"

Problem

我准备编译 arm 32 位的 frpc,然后报了下面的错,

hapoa@hapoa-virtual-machine:~/projects/frp/src/github.com/fatedier/frp$ make -f ./Makefile.my
#env CGO_ENABLED=0 GOOS=linux GOARCH=386 go build -ldflags "-s -w" -o ./frpc_linux_386 ./cmd/frpc
#env CGO_ENABLED=0 GOOS=linux GOARCH=386 go build -ldflags "-s -w" -o ./frps_linux_386 ./cmd/frps
#env CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags "-s -w" -o ./frps_linux_amd64 ./cmd/frps
env CGO_ENABLED=0 GOOS=linux GOARCH=arm go build -ldflags "-s -w" -o ./frpc_linux_arm ./cmd/frpc
# github.com/fatedier/frp/vendor/github.com/armon/go-socks5
vendor/github.com/armon/go-socks5/socks5.go:11:2: log redeclared as imported package name
	previous declaration at vendor/github.com/armon/go-socks5/socks5.go:6:2
vendor/github.com/armon/go-socks5/socks5.go:84:17: undefined: "github.com/fatedier/frp/utils/log".New
vendor/github.com/armon/go-socks5/socks5.go:84:40: undefined: "github.com/fatedier/frp/utils/log".LstdFlags
vendor/github.com/armon/go-socks5/socks5.go:132:18: s.config.Logger.Printf undefined (type *"github.com/fatedier/frp/utils/log".Logger is pointer to interface, not interface)
vendor/github.com/armon/go-socks5/socks5.go:139:18: s.config.Logger.Printf undefined (type *"github.com/fatedier/frp/utils/log".Logger is pointer to interface, not interface)
vendor/github.com/armon/go-socks5/socks5.go:147:18: s.config.Logger.Printf undefined (type *"github.com/fatedier/frp/utils/log".Logger is pointer to interface, not interface)
vendor/github.com/armon/go-socks5/socks5.go:168:18: s.config.Logger.Printf undefined (type *"github.com/fatedier/frp/utils/log".Logger is pointer to interface, not interface)
make: *** [app] 错误 2

我到 socks5.go 看了下,确实有两个 log。

package socks5

import (
	"bufio"
	"fmt"
	"log"
	"net"
	"os"

	"golang.org/x/net/context"
	"github.com/fatedier/frp/utils/log"
)

对不起,目前我对 go 的了解仅限于百度,所以只能来叨扰你了。还有,frps 是可以编译成功的,看了下其他人的 issues,也有类似的问题,大多是 go 版本的原因,你能说下你那边用的版本么?我现在的 go 版本是:

hapoa@hapoa-virtual-machine:~/projects/frp/src/github.com/fatedier/frp$ go version
go version go1.12.7 linux/amd64

2019-10-23 15:37 更新:

我降到 go 1.8.3 了,还是一样的错误,然后把出错的 socks.go 同你 git 上最新的 master 作了比对,返现你去掉了你引入的 log,然后我这边就注释,编译,那些错就没了,但是还有一个错:

hapoa@hapoa-virtual-machine:~/projects/frp/src/github.com/fatedier/frp$ make -f ./Makefile.my
#env CGO_ENABLED=0 GOOS=linux GOARCH=386 go build -ldflags "-s -w" -o ./frpc_linux_386 ./cmd/frpc
#env CGO_ENABLED=0 GOOS=linux GOARCH=386 go build -ldflags "-s -w" -o ./frps_linux_386 ./cmd/frps
#env CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags "-s -w" -o ./frps_linux_amd64 ./cmd/frps
env CGO_ENABLED=0 GOOS=linux GOARCH=arm go build -ldflags "-s -w" -o ./frpc_linux_arm ./cmd/frpc
# github.com/fatedier/frp/models/msg
models/msg/ctl.go:23: syntax error: unexpected = in type declaration
make: *** [app] 错误 2

hapoa@hapoa-virtual-machine:~/projects/frp/src/github.com/fatedier/frp$ go env
GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/hapoa/projects/frp"
GORACE=""
GOROOT="/home/hapoa/packages/go-1-8-3"
GOTOOLDIR="/home/hapoa/packages/go-1-8-3/pkg/tool/linux_amd64"
GCCGO="gccgo"
CC="gcc"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build208932723=/tmp/go-build -gno-record-gcc-switches"
CXX="g++"
CGO_ENABLED="1"
PKG_CONFIG="pkg-config"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"

hapoa@hapoa-virtual-machine:~/projects/frp/src/github.com/fatedier/frp$ go version
go version go1.8.3 linux/amd64

我又去比对了 ctl.go,一毛一样的,这就是语法上的问题了。

我 google 了,在这里找到了答案:https://github.com/google/go-jsonnet/issues/172

原因应该是 go 版本太低的缘故,所以我又重新升级到 1.12.7 了,问题完美解决。

Originally created by @ethsonliu on GitHub (Oct 23, 2019). Original GitHub issue: https://github.com/fatedier/frp/issues/1478 **What version of frp are you using (./frpc -v or ./frps -v)?** 0.27.0 **What operating system and processor architecture are you using (`go env`)?** ```shell hapoa@hapoa-virtual-machine:~/projects/frp/src/github.com/fatedier/frp$ go env GOARCH="amd64" GOBIN="" GOCACHE="/home/hapoa/.cache/go-build" GOEXE="" GOFLAGS="" GOHOSTARCH="amd64" GOHOSTOS="linux" GOOS="linux" GOPATH="/home/hapoa/projects/frp" GOPROXY="" GORACE="" GOROOT="/home/hapoa/packages/local/go-1-12-7" GOTMPDIR="" GOTOOLDIR="/home/hapoa/packages/local/go-1-12-7/pkg/tool/linux_amd64" GCCGO="gccgo" CC="gcc" CXX="g++" CGO_ENABLED="1" GOMOD="" CGO_CFLAGS="-g -O2" CGO_CPPFLAGS="" CGO_CXXFLAGS="-g -O2" CGO_FFLAGS="-g -O2" CGO_LDFLAGS="-g -O2" PKG_CONFIG="pkg-config" GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build293486561=/tmp/go-build -gno-record-gcc-switches" ``` **Problem** 我准备编译 arm 32 位的 frpc,然后报了下面的错, ```shell hapoa@hapoa-virtual-machine:~/projects/frp/src/github.com/fatedier/frp$ make -f ./Makefile.my #env CGO_ENABLED=0 GOOS=linux GOARCH=386 go build -ldflags "-s -w" -o ./frpc_linux_386 ./cmd/frpc #env CGO_ENABLED=0 GOOS=linux GOARCH=386 go build -ldflags "-s -w" -o ./frps_linux_386 ./cmd/frps #env CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags "-s -w" -o ./frps_linux_amd64 ./cmd/frps env CGO_ENABLED=0 GOOS=linux GOARCH=arm go build -ldflags "-s -w" -o ./frpc_linux_arm ./cmd/frpc # github.com/fatedier/frp/vendor/github.com/armon/go-socks5 vendor/github.com/armon/go-socks5/socks5.go:11:2: log redeclared as imported package name previous declaration at vendor/github.com/armon/go-socks5/socks5.go:6:2 vendor/github.com/armon/go-socks5/socks5.go:84:17: undefined: "github.com/fatedier/frp/utils/log".New vendor/github.com/armon/go-socks5/socks5.go:84:40: undefined: "github.com/fatedier/frp/utils/log".LstdFlags vendor/github.com/armon/go-socks5/socks5.go:132:18: s.config.Logger.Printf undefined (type *"github.com/fatedier/frp/utils/log".Logger is pointer to interface, not interface) vendor/github.com/armon/go-socks5/socks5.go:139:18: s.config.Logger.Printf undefined (type *"github.com/fatedier/frp/utils/log".Logger is pointer to interface, not interface) vendor/github.com/armon/go-socks5/socks5.go:147:18: s.config.Logger.Printf undefined (type *"github.com/fatedier/frp/utils/log".Logger is pointer to interface, not interface) vendor/github.com/armon/go-socks5/socks5.go:168:18: s.config.Logger.Printf undefined (type *"github.com/fatedier/frp/utils/log".Logger is pointer to interface, not interface) make: *** [app] 错误 2 ``` 我到 socks5.go 看了下,确实有两个 log。 ```go package socks5 import ( "bufio" "fmt" "log" "net" "os" "golang.org/x/net/context" "github.com/fatedier/frp/utils/log" ) ``` 对不起,目前我对 go 的了解仅限于百度,所以只能来叨扰你了。还有,frps 是可以编译成功的,看了下其他人的 issues,也有类似的问题,大多是 go 版本的原因,你能说下你那边用的版本么?我现在的 go 版本是: ```shell hapoa@hapoa-virtual-machine:~/projects/frp/src/github.com/fatedier/frp$ go version go version go1.12.7 linux/amd64 ``` **2019-10-23 15:37 更新:** 我降到 go 1.8.3 了,还是一样的错误,然后把出错的 socks.go 同你 git 上最新的 master 作了比对,返现你去掉了你引入的 log,然后我这边就注释,编译,那些错就没了,但是还有一个错: ```shell hapoa@hapoa-virtual-machine:~/projects/frp/src/github.com/fatedier/frp$ make -f ./Makefile.my #env CGO_ENABLED=0 GOOS=linux GOARCH=386 go build -ldflags "-s -w" -o ./frpc_linux_386 ./cmd/frpc #env CGO_ENABLED=0 GOOS=linux GOARCH=386 go build -ldflags "-s -w" -o ./frps_linux_386 ./cmd/frps #env CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags "-s -w" -o ./frps_linux_amd64 ./cmd/frps env CGO_ENABLED=0 GOOS=linux GOARCH=arm go build -ldflags "-s -w" -o ./frpc_linux_arm ./cmd/frpc # github.com/fatedier/frp/models/msg models/msg/ctl.go:23: syntax error: unexpected = in type declaration make: *** [app] 错误 2 hapoa@hapoa-virtual-machine:~/projects/frp/src/github.com/fatedier/frp$ go env GOARCH="amd64" GOBIN="" GOEXE="" GOHOSTARCH="amd64" GOHOSTOS="linux" GOOS="linux" GOPATH="/home/hapoa/projects/frp" GORACE="" GOROOT="/home/hapoa/packages/go-1-8-3" GOTOOLDIR="/home/hapoa/packages/go-1-8-3/pkg/tool/linux_amd64" GCCGO="gccgo" CC="gcc" GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build208932723=/tmp/go-build -gno-record-gcc-switches" CXX="g++" CGO_ENABLED="1" PKG_CONFIG="pkg-config" CGO_CFLAGS="-g -O2" CGO_CPPFLAGS="" CGO_CXXFLAGS="-g -O2" CGO_FFLAGS="-g -O2" CGO_LDFLAGS="-g -O2" hapoa@hapoa-virtual-machine:~/projects/frp/src/github.com/fatedier/frp$ go version go version go1.8.3 linux/amd64 ``` 我又去比对了 ctl.go,一毛一样的,这就是语法上的问题了。 我 google 了,在这里找到了答案:<https://github.com/google/go-jsonnet/issues/172> 原因应该是 go 版本太低的缘故,所以我又重新升级到 1.12.7 了,问题完美解决。
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: github-starred/frp#1166
No description provided.