etclabscore / core-geth

A highly configurable Go implementation of the Ethereum protocol.
https://etclabscore.github.io/core-geth
GNU Lesser General Public License v3.0
268 stars 147 forks source link

Make geth failure on Windows #527

Closed kevin-wad closed 1 year ago

kevin-wad commented 1 year ago

Hi there,

On my computer running "make geth" fails on windows but works on linux.

System information

Geth version: geth version OS & Version: Windows 11 Go version 1.20.1 windows/amd64 Make verision 4.4 Commit hash : f5a959522e6974a8c88623bde985c8fc52f0914a

Expected behaviour

"make geth" or "make all" should work

Actual behaviour

Error

Steps to reproduce the behaviour

Install Go (version windows/amd64) and Make (version 4.4) cd to /core-geth run "make geth" fails with errors:

github.com/ethereum/go-ethereum/accounts/abi/bind
html
# gopkg.in/olebedev/go-duktape.v3
C:\Users\Username\go\pkg\mod\gopkg.in\olebedev\go-duktape.v3@v3.0.0-20200619000410-60c24ae608a6\dbgsockettransport.go:14:16: undefined: Context
C:\Users\Username\go\pkg\mod\gopkg.in\olebedev\go-duktape.v3@v3.0.0-20200619000410-60c24ae608a6\dbgsockettransport.go:16:15: undefined: DebugRequestFunc
C:\Users\Username\go\pkg\mod\gopkg.in\olebedev\go-duktape.v3@v3.0.0-20200619000410-60c24ae608a6\dbgsockettransport.go:17:15: undefined: DebugDetachedFunc
C:\Users\Username\go\pkg\mod\gopkg.in\olebedev\go-duktape.v3@v3.0.0-20200619000410-60c24ae608a6\dbgsockettransport.go:31:30: undefined: Context
C:\Users\Username\go\pkg\mod\gopkg.in\olebedev\go-duktape.v3@v3.0.0-20200619000410-60c24ae608a6\dbgsockettransport.go:33:14: undefined: DebugRequestFunc
C:\Users\Username\go\pkg\mod\gopkg.in\olebedev\go-duktape.v3@v3.0.0-20200619000410-60c24ae608a6\dbgsockettransport.go:34:15: undefined: DebugDetachedFunc
C:\Users\Username\go\pkg\mod\gopkg.in\olebedev\go-duktape.v3@v3.0.0-20200619000410-60c24ae608a6\timers.go:11:10: undefined: Context
C:\Users\Username\go\pkg\mod\gopkg.in\olebedev\go-duktape.v3@v3.0.0-20200619000410-60c24ae608a6\timers.go:30:10: undefined: Context
C:\Users\Username\go\pkg\mod\gopkg.in\olebedev\go-duktape.v3@v3.0.0-20200619000410-60c24ae608a6\timers.go:37:20: undefined: Context
C:\Users\Username\go\pkg\mod\gopkg.in\olebedev\go-duktape.v3@v3.0.0-20200619000410-60c24ae608a6\timers.go:63:22: undefined: Context
C:\Users\Username\go\pkg\mod\gopkg.in\olebedev\go-duktape.v3@v3.0.0-20200619000410-60c24ae608a6\timers.go:63:22: too many errors
github.com/mattn/go-isatty
google.golang.org/protobuf/encoding/protowire
google.golang.org/protobuf/internal/impl
# github.com/ethereum/go-ethereum/consensus/lyra2
consensus\lyra2\api.go:15:9: undefined: Lyra2
consensus\lyra2\sealer.go:207:16: undefined: Lyra2
consensus\lyra2\consensus.go:50:14: undefined: Lyra2
consensus\lyra2\consensus.go:56:14: undefined: Lyra2
consensus\lyra2\consensus.go:77:14: undefined: Lyra2
consensus\lyra2\consensus.go:139:14: undefined: Lyra2
consensus\lyra2\consensus.go:157:14: undefined: Lyra2
consensus\lyra2\consensus.go:213:14: undefined: Lyra2
consensus\lyra2\consensus.go:276:14: undefined: Lyra2
consensus\lyra2\consensus.go:334:14: undefined: Lyra2
consensus\lyra2\consensus.go:334:14: too many errors
util.go:46: exit status 1
exit status 1
make: *** [Makefile:25: all] Error 1

Thank you very much for help!

kevin-wad commented 1 year ago

With the latest Ethereum Classic commit, I only have the second issue about Lyra2. The first one about pkg doen't occur on latest commit

meowsbits commented 1 year ago

Thanks for the report. Let's see what we can do.

Does your system have a C compiler installed? (See build docs here.)

I've created a demonstration of building geth on Windows here https://github.com/meowsbits/core-geth/actions/runs/4223657228/jobs/7333648014, which might serve as a reference to see what's different with your context and clues for the fix.

kevin-wad commented 1 year ago

Thank you very much for support! I have installed go 1.18 as this is the version you use in your build. Now it's asking me to install gcc, which correspond with your suggestion. I'll let you know if it fixes the issue after I've installed gcc and tried again

meowsbits commented 1 year ago

It's been a while. Assuming no news is good news, I'll close this. Feel welcome to reopen if the issue is unresolved.

ghost commented 11 months ago

After installing Mingw64 with windows it worked

Example command to build on windows

git clone https://github.com/etclabscore/core-geth
cd core-geth
set GO111MODULE=on
go run build\ci.go install ./cmd/geth
kevin-wad commented 7 months ago

Hi! Sorry for late reply. Yes I confirm it's working now. Thank you very much for support!