Okay, after looking at gtkd, I don't think this can be solved with
module constructors or swapping out to lazy initialization.
One way that might work however is to use a crt_constructor as that runs
before the D stuff. However it would now hard code your program to your
system. Over all my suspicion is that there is something wrong with your
system related to library lookup paths and that should be fixed instead.
```d
void main() {
import std.stdio;
import std.process;
writeln(environment["GTK_BASEPATH"]);
}
pragma(crt_constructor) extern(C) void myEnvironmentVarSetter() {
import core.sys.posix.stdlib : putenv;
putenv(cast(char*)"GTK_BASEPATH=~/bin/gtk".ptr);
}
```