spacemonkeygo / openssl

OpenSSL bindings for Go
http://godoc.org/github.com/spacemonkeygo/openssl
Apache License 2.0
473 stars 236 forks source link

build problem on win11 #157

Closed 578141611 closed 1 year ago

578141611 commented 1 year ago
  1. using mingw64 x86_64-12.2.0-release-win32-seh-ucrt-rt_v10-rev2.7z x86_64-12.2.0-release-win32-seh-msvcrt-rt_v10-rev2.7z

go env set GO111MODULE=on set GOARCH=amd64 set GOBIN= set GOCACHE=C:\Users\57814\AppData\Local\go-build set GOENV=C:\Users\57814\AppData\Roaming\go\env set GOEXE=.exe set GOEXPERIMENT= set GOFLAGS= set GOHOSTARCH=amd64 set GOHOSTOS=windows set GOINSECURE= set GOMODCACHE=C:\Users\57814\go\pkg\mod set GONOPROXY= set GONOSUMDB= set GOOS=windows set GOPATH=C:\Users\57814\go set GOPRIVATE= set GOPROXY=https://goproxy.io,direct set GOROOT=C:\Program Files\Go set GOSUMDB=sum.golang.org set GOTMPDIR= set GOTOOLDIR=C:\Program Files\Go\pkg\tool\windows_amd64 set GOVCS= set GOVERSION=go1.19 set GCCGO=gccgo set GOAMD64=v1 set AR=ar set CC=gcc set CXX=g++ set CGO_ENABLED=1 set GOMOD=NUL set GOWORK= set CGO_CFLAGS=-g -O2 set CGO_CPPFLAGS= set CGO_CXXFLAGS=-g -O2 set CGO_FFLAGS=-g -O2 set CGO_LDFLAGS=-g -O2 set PKG_CONFIG=pkg-config set GOGCCFLAGS=-m64 -mthreads -Wl,--no-gc-sections -fmessage-length=0 -fdebug-prefix-map=C:\Users\57814\AppData\Local\Temp\go-build3497432011=/tmp/go-build -gno-record-gcc-switches

then I can build successfully, but when can not run. Obviously building abnormal, but I do not the reason.

libssl.pc ` prefix=E:/dev_package/OpenSSL-Win64 exec_prefix=${prefix} libdir=${exec_prefix}/lib includedir=${prefix}/include

Name: libssl Description: Secure Sockets Layer and cryptography libraries and tools Version: 1.1.1g Libs: -L${libdir} -lssl Cflags: -I${includedir} `

libcrypto.pc ` prefix=E:/dev_package/OpenSSL-Win64 exec_prefix=${prefix} libdir=${exec_prefix}/lib includedir=${prefix}/include

Name: OpenSSL Description: Secure Sockets Layer and cryptography libraries and tools Version: 1.1.1g Libs: -L${libdir} -lcrypto Cflags: -I${includedir} `

` package opensslWrapper2

import ( "fmt"

"github.com/spacemonkeygo/openssl"

)

func OpensslTest() { fmt.Println("new openssl ctx") ctx, err := openssl.NewCtx() if err != nil { fmt.Println(err) } fmt.Println("dial 199.200.2.170:443") conn, err := openssl.Dial("tcp", "199.200.2.170:443", ctx, openssl.InsecureSkipHostVerification) if err != nil { fmt.Println(err) } else { fmt.Println("dial 199.200.2.170:443 succ") }

// 发送数据
conn.Write([]byte("hello, world"))
fmt.Println("write data succ")

buf := make([]byte, 1024)
nbyte, err := conn.Read(buf[:])
if err != nil {
    fmt.Println(err)
} else {
    fmt.Println(nbyte)
}

} `

such code run successfully on macOS10.15.4。

when I switch to win 32 bit. I use dir "E:\dev_package\OpenSSL-Win32\lib\MinGW",

` prefix=E:/dev_package/OpenSSL-Win32 exec_prefix=${prefix} libdir=${exec_prefix}/lib/MinGW includedir=${prefix}/include

Name: libssl Description: Secure Sockets Layer and cryptography libraries and tools Version: 1.1.1g Libs: -L${libdir} -lssl Cflags: -I${includedir} `

and set GOARCH=386

set GO111MODULE=on set GOARCH=386 set GOBIN= set GOCACHE=C:\Users\57814\AppData\Local\go-build set GOENV=C:\Users\57814\AppData\Roaming\go\env set GOEXE=.exe set GOEXPERIMENT= set GOFLAGS= set GOHOSTARCH=amd64 set GOHOSTOS=windows set GOINSECURE= set GOMODCACHE=C:\Users\57814\go\pkg\mod set GONOPROXY= set GONOSUMDB= set GOOS=windows set GOPATH=C:\Users\57814\go set GOPRIVATE= set GOPROXY=https://goproxy.io,direct set GOROOT=C:\Program Files\Go set GOSUMDB=sum.golang.org set GOTMPDIR= set GOTOOLDIR=C:\Program Files\Go\pkg\tool\windows_amd64 set GOVCS= set GOVERSION=go1.19 set GCCGO=gccgo set GO386=sse2 set AR=ar set CC=gcc set CXX=g++ set CGO_ENABLED=0 set GOMOD=NUL set GOWORK= set CGO_CFLAGS=-g -O2 set CGO_CPPFLAGS= set CGO_CXXFLAGS=-g -O2 set CGO_FFLAGS=-g -O2 set CGO_LDFLAGS=-g -O2 set PKG_CONFIG=pkg-config set GOGCCFLAGS=-m32 -Wl,--no-gc-sections -fmessage-length=0 -fdebug-prefix-map=C:\Users\57814\AppData\Local\Temp\go-build1144869738=/tmp/go-build -gno-record-gcc-switches

then tips: `

E:/dev_package/workspace/x86_64-12.2.0-release-win32-seh-msvcrt-rt_v10-rev2/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible E:/dev_package/OpenSSL-Win32/lib/MinGW\libssl.a when searching for -lssl E:/dev_package/workspace/x86_64-12.2.0-release-win32-seh-msvcrt-rt_v10-rev2/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible E:/dev_package/workspace/x86_64-12.2.0-release-win32-seh-msvcrt-rt_v10-rev2/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../lib/libssl.a when searching for -lssl E:/dev_package/workspace/x86_64-12.2.0-release-win32-seh-msvcrt-rt_v10-rev2/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible E:/dev_package/workspace/x86_64-12.2.0-release-win32-seh-msvcrt-rt_v10-rev2/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../lib\libssl.a when searching for -lssl E:/dev_package/workspace/x86_64-12.2.0-release-win32-seh-msvcrt-rt_v10-rev2/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible E:/dev_package/workspace/x86_64-12.2.0-release-win32-seh-msvcrt-rt_v10-rev2/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../libssl.a when searching for -lssl E:/dev_package/workspace/x86_64-12.2.0-release-win32-seh-msvcrt-rt_v10-rev2/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible E:/dev_package/workspace/x86_64-12.2.0-release-win32-seh-msvcrt-rt_v10-rev2/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../..\libssl.a when searching for -lssl E:/dev_package/workspace/x86_64-12.2.0-release-win32-seh-msvcrt-rt_v10-rev2/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible E:/dev_package/OpenSSL-Win32/lib/libssl.lib when searching for -lssl E:/dev_package/workspace/x86_64-12.2.0-release-win32-seh-msvcrt-rt_v10-rev2/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible E:/dev_package/OpenSSL-Win32/lib/MinGW/libssl.a when searching for -lssl E:/dev_package/workspace/x86_64-12.2.0-release-win32-seh-msvcrt-rt_v10-rev2/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible E:/dev_package/workspace/x86_64-12.2.0-release-win32-seh-msvcrt-rt_v10-rev2/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../lib/libssl.a when searching for -lssl E:/dev_package/workspace/x86_64-12.2.0-release-win32-seh-msvcrt-rt_v10-rev2/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible E:/dev_package/workspace/x86_64-12.2.0-release-win32-seh-msvcrt-rt_v10-rev2/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../libssl.a when searching for -lssl E:/dev_package/workspace/x86_64-12.2.0-release-win32-seh-msvcrt-rt_v10-rev2/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lssl: No such file orge/OpenSSL-Win32/lib/libssl.lib when searching for -lssl E:/dev_package/workspace/x86_64-12.2.0-release-win32-seh-msvcrt-rt_v10-rev2/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible E:/dev_package/OpenSSL-Win32/lib/MinGW/libssl.a when searching for -lssl E:/dev_package/workspace/x86_64-12.2.0-release-win32-seh-msvcrt-rt_v10-rev2/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible E:/dev_package/workspace/x86_64-12.2.0-release-win32-seh-msvcrt-rt_v10-rev2/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../lib/libssl.a when searching for -lssl E:/dev_package/workspace/x86_64-12.2.0-release-win32-seh-msvcrt-rt_v10-rev2/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible E:/dev_package/workspace/x86_64-12.2.0-release-win32-seh-msvcrt-rt_v10-rev2/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../libssl.a when searching for -lssl E:/dev_package/workspace/x86_64-12.2.0-release-win32-seh-msvcrt-rt_v10-rev2/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible E:/dev_package/OpenSSL-Win32/lib/libcrypto.lib when searching for -lcrypto E:/dev_package/workspace/x86_64-12.2.0-release-win32-seh-msvcrt-rt_v10-rev2/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible E:/dev_package/OpenSSL-Win32/lib/MinGW/libcrypto.a when searching for -lcrypto E:/dev_package/workspace/x86_64-12.2.0-release-win32-seh-msvcrt-rt_v10-rev2/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible E:/dev_package/OpenSSL-Win32/lib/MinGW\libcrypto.a when searching for -lcrypto E:/dev_package/workspace/x86_64-12.2.0-release-win32-seh-msvcrt-rt_v10-rev2/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible E:/dev_package/workspace/x86_64-12.2.0-release-win32-seh-msvcrt-rt_v10-rev2/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../lib/libcrypto.a when searching for -lcrypto E:/dev_package/workspace/x86_64-12.2.0-release-win32-seh-msvcrt-rt_v10-rev2/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible E:/dev_package/workspace/x86_64-12.2.0-release-win32-seh-msvcrt-rt_v10-rev2/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../lib\libcrypto.a when searching for -lcrypto E:/dev_package/workspace/x86_64-12.2.0-release-win32-seh-msvcrt-rt_v10-rev2/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible E:/dev_package/workspace/x86_64-12.2.0-release-win32-seh-msvcrt-rt_v10-rev2/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../libcrypto.a when searching for -lcrypto E:/dev_package/workspace/x86_64-12.2.0-release-win32-seh-msvcrt-rt_v10-rev2/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible E:/dev_package/workspace/x86_64-12.2.0-release-win32-seh-msvcrt-rt_v10-rev2/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../..\libcrypto.a when searching for -lcrypto E:/dev_package/workspace/x86_64-12.2.0-release-win32-seh-msvcrt-rt_v10-rev2/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible E:/dev_package/OpenSSL-Win32/lib/libcrypto.lib when searching for -lcrypto E:/dev_package/workspace/x86_64-12.2.0-release-win32-seh-msvcrt-rt_v10-rev2/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible E:/dev_package/OpenSSL-Win32/lib/MinGW/libcrypto.a when searching for -lcrypto E:/dev_package/workspace/x86_64-12.2.0-release-win32-seh-msvcrt-rt_v10-rev2/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible E:/dev_package/workspace/x86_64-12.2.0-release-win32-seh-msvcrt-rt_v10-rev2/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../lib/libcrypto.a when searching for -lcrypto E:/dev_package/workspace/x86_64-12.2.0-release-win32-seh-msvcrt-rt_v10-rev2/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible E:/dev_package/workspace/x86_64-12.2.0-release-win32-seh-msvcrt-rt_v10-rev2/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../libcrypto.a when searching for -lcrypto E:/dev_package/workspace/x86_64-12.2.0-release-win32-seh-msvcrt-rt_v10-rev2/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lcrypto: No such file or directory E:/dev_package/workspace/x86_64-12.2.0-release-win32-seh-msvcrt-rt_v10-rev2/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible E:/dev_package/OpenSSL-Win32/lib/libcrypto.lib when searching for -lcrypto E:/dev_package/workspace/x86_64-12.2.0-release-win32-seh-msvcrt-rt_v10-rev2/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible E:/dev_package/OpenSSL-Win32/lib/MinGW/libcrypto.a when searching for -lcrypto E:/dev_package/workspace/x86_64-12.2.0-release-win32-seh-msvcrt-rt_v10-rev2/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible E:/dev_package/workspace/x86_64-12.2.0-release-win32-seh-msvcrt-rt_v10-rev2/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../lib/libcrypto.a when searching for -lcrypto E:/dev_package/workspace/x86_64-12.2.0-release-win32-seh-msvcrt-rt_v10-rev2/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible E:/dev_package/workspace/x86_64-12.2.0-release-win32-seh-msvcrt-rt_v10-rev2/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../libcrypto.a when searching for -lcrypto collect2.exe: error: ld returned 1 exit status `

can you show me your code for windows?

578141611 commented 1 year ago

already solved, 64 bit is dll dependency, need copy libssl.dll to .exe dir