-static and dmd
Ali Çehreli
acehreli at yahoo.com
Mon Mar 29 16:17:41 PDT 2010
Jonathan M Davis wrote:
> With gcc, you can pass it the -static flag and it will statically link
> everything. Normally, with dmd (on linux at least), it dynamically links all
> of the C/C++ libraries that it uses. So, if I run ldd (well, ldd32
> technically) on one of my programs I get:
>
> linux-gate.so.1 => (0xf7794000)
> libpthread.so.0 => /lib32/libpthread.so.0 (0xf7756000)
> libm.so.6 => /lib32/libm.so.6 (0xf7730000)
> libc.so.6 => /lib32/libc.so.6 (0xf75ea000)
> /lib32/ld-linux.so.2 (0xf7795000)
>
> If it were gcc and -static had been used, you'd get
>
> not a dynamic executable
>
> I'd like to be able to do the equivalent of -static with dmd so that my dmd-
> generated binaries don't have to link against any of the C/C++ libraries on
> my system. Is there a way to do that? I can't see any. Certainly, none of
> dmd's options appear to give that kind of functionality. So, if there is a
> way to do it, I'd like to know how. Does anyone here know how?
>
> - Jonathan M Davis
A friend hit the same problem recently and I was able to achieve it by
performing the linking step with gcc.
1) Compile with dmd:
dmd -c deneme.d -ofdeneme.o
2) Link with gcc:
gcc deneme.o -static -o deneme ~/dmd/linux/lib/libphobos2.a -lpthread
Worked with my simple test application.
Ali
More information about the Digitalmars-d-learn
mailing list