Hardcoded filepaths in compiled exe
    Raikia 
    raikiasec at gmail.com
       
    Tue Dec 29 16:13:53 UTC 2020
    
    
  
Hey all,
I'm trying to compile a release-level binary but it looks like 
the resulting executable has metadata in it that I would like to 
avoid.  I've tried using both LDC and DMD with the below commands 
(I've tried many variations of them, you can see the switches are 
in an attempt to remove this problem):
dmd -m64 -O -J. -release -inline -boundscheck=off 
-L/SUBSYSTEM:WINDOWS -L/ENTRY:mainCRTStartup .\program.d
and
ldc2.exe --link-internally -O --boundscheck=off --o- --release 
--relocation-model=pic --static .\program.d
However, after doing those, if you look at the strings in the 
compiled exe, you'll see things like:
$ strings -a program.exe | grep 'dmd2'
C:\D\dmd2\windows\bin\..\..\src\phobos\std\file.d
C:\D\dmd2\windows\bin\..\..\src\phobos\std\utf.d
C:\D\dmd2\windows\bin\..\..\src\phobos\std\base64.d
This problem is more egregious when I am using a home folder, 
like "C:\Users\<my name>\" instead of "C:\D\".  Am I missing 
something?  Is there a way to compile D without leaking metadata 
like this in a production release binary?
    
    
More information about the Digitalmars-d-learn
mailing list