Open AllenDang opened 4 years ago
Did you end up fixing this at all?
I don't have a Windows machine handy unfortunately - can you post the files so we can reproduce?
Is there any way you can post the minimal fully executable code for me to test with?
I have a similar problem. Created a test repo here: https://github.com/pitw/test-goversioninfo
While I don't use goversioninfo, I did experience the same issue when generating syso files using rsrc on Windows 10.
.syso files generated with rcrc -arch amd64 -manifest main.manifest -ico main.ico -o main.rsrc
leads to a failure: corrupt .rsrc section
error during "go build".
However, .syso files generated with rcrc -arch amd64 -manifest main.manifest -o main.rsrc
work fine.
I finally managed to resolve the issue by downgrading from TDM-GCC 9.2.0 to TDM-GCC 5.1.0-2.
Kudos to @Rodolfoag whose answer I found here.
@pitw Can confirm your test project compiles successfully using TDM-GCC 5.1.0-2.
Hello. rsrc has at least one bug : it doesn't align resources, while this seems mandatory (most tools can't read them properly otherwise) windres aligns them on 8 bytes.
Edit : Tried a quick and dirty fix on pitw's test repo. It worked.
go get github.com/tc-hib/goversioninfo/cmd/goversioninfo
go generate
go build
⇨ No error.
go get github.com/josephspurrier/goversioninfo/cmd/goversioninfo
go generate
go build
⇨ .rsrc merge failure: corrupt .rsrc section
Nice, replaced github.com/akavel/rsrc
with github.com/tc-hib/rsrc
in my project. Now building successfully with TDM-GCC 9.2.0.
Thanks for the heads up @tc-hib
When having C code to compile (such as github.com/mattn/go-sqlite3
) + resource.syso
exists, this error may occur
@ldstein and others: if you are still using my fork please use the original one again as the bug has been properly fixed by akavel. I've developed my own tool too: https://github.com/tc-hib/go-winres
And I'd like to delete my forks of rsrc and goversioninfo as my quick fix was bad.
I'm sorry, looks like I talked a bit too early. Current version of rsrc still seems to require a bug fix.
Just updated github.com/akavel/rsrc to v0.10.2. but as @tc-hib said, looks like there is still a bug.
C:/Tools/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: $WORK\b001\exe\a.out.exe: .rsrc merge failure: corrupt .rsrc section
The go generate command is //go:generate goversioninfo -64 -icon=./resource/pipeline.ico -manifest=./resource/PipeIt.exe.manifest
My platform is Windows 10 64bit with go version go1.13.5 windows/amd64