Entry point errors when using LDC to compile Windows Subsystem module with -m32

spikespaz spikespaz at outlook.com
Thu Sep 20 20:48:50 UTC 2018


I have a user having issues running my project on their 32-bit 
Windows install. I thought LDC2 compiled as 32-bit by default, 
but for some reason the errors persist for him regardless.

In attempt to resolve this, I am doing everything that requires 
32-bit explicitly. I downloaded a known-good 32-bit libcurl.dll 
to distribute with the project, I added -m32 to all of the 
compile commands, added -L/SUBSYSTEM:WINDOWS etc.

When comping with the command below, I get linker errors saying 
that '/SUBSYSTEM:WINDOWS" isn't recognized and is ignored, and 
entry point must be defined. MSVCE linker fails with status 1221.

     ldc2 "source/launcher.d" "source/common.d" 
-of="build/$release/launcher.exe" \
         -m32 -O3 -ffast-math -release -g -L/SYBSYSTEM:WINDOWS

Compiling with the following command however works fine, but 
doesn't work on 32-bit systems.

     ldc2 "source/launcher.d" "source/common.d" 
-of="build/$release/launcher.exe" \
         -O3 -ffast-math -release -g

The issue stems from using 'extern (Windows) WinMain' as the 
entry point in the file. Any ideas how I can resolve this?

https://github.com/spikespaz/search-deflector/blob/master/source/launcher.d
https://github.com/spikespaz/search-deflector/blob/master/build.sh


More information about the Digitalmars-d-learn mailing list