errors while compiling cross platform from Linux to Windows
krishna9081 opened this issue · 5 comments
Please include the following information in your ticket.
- Version information for MQ, mq-golang, Go compiler
MQ
Name: IBM MQ
Version: 9.3.4.1
Level: p934-001-231123
BuildType: IKAP - (Production)
Platform: IBM MQ for Linux (x86-64 platform)
Mode: 64-bit
O/S: Linux 5.15.133.1-microsoft-standard-WSL2
O/S Details: Ubuntu 22.04.1 LTS (Jammy Jellyfish)
InstName: MQNI93L23112300P
InstDesc: IBM MQ V9.3.4.1 (Redistributable)
Primary: N/A
Go version: v1.18.1
Compiler : x86_64-w64-mingw32-gcc
GCCGO="gccgo"
- A small code sample that demonstrates the issue.
❯ CC=x86_64-w64-mingw32-gcc CGO_ENABLED=1 GOOS=windows GOARCH=amd64 CGO_LDFLAGS="-L$MQ_INSTALLATION_PATH/lib64 -Wl,-rpath,$MQ_INSTALLATION_PATH/lib64" go build -o mqget.exe mqget.go
github.com/ibm-messaging/mq-golang/v5/ibmmq
/usr/bin/x86_64-w64-mingw32-ld: cannot find -lmqm: No such file or directory
collect2: error: ld returned 1 exit status
If you're going to try to cross-compile, you need to point at the Windows MQ client include/library directories. Look at ibmmq/mqi.go
for the usual LDFLAGS/CFLAGS needed for Windows. And then you'd have to map your Windows MQ installation directory to however WSL sees it. Though I've not tried cross-compiles, so don't know how successful it might be.
That looks like you're mixing up powershell and traditional command prompt operations.
Did you install mqm on windows machine? if it's installed check all path and ensure it contains path to dll
It's all about dynamic linking