www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - Distribution of D apps

reply Dibyendu Majumdar <d.majumdar gmail.com> writes:
Hi,

I am trying to understand the options for distributing a D app to 
users. My assumption is that only the shared libraries and 
binaries need to be distributed, and I need to include the D 
libraries. Is this correct?

Thanks and Regards
Dibyendu
Jan 20 2016
next sibling parent Rikki Cattermole <alphaglosined gmail.com> writes:
On 21/01/16 5:01 AM, Dibyendu Majumdar wrote:
 Hi,

 I am trying to understand the options for distributing a D app to users.
 My assumption is that only the shared libraries and binaries need to be
 distributed, and I need to include the D libraries. Is this correct?

 Thanks and Regards
 Dibyendu
Binaries such as such as shared libraries do indeed need to be packaged in the distribution. Static library files do not need to be distributed however.
Jan 20 2016
prev sibling next sibling parent Adam D. Ruppe <destructionator gmail.com> writes:
By default, a binary compiled with D will have the standard 
library statically linked in, so all you need to distribute are 
other shared libs you choose to use (which might include curl btw 
if you use the std.net.curl functions).

But many .exes from D can be distributed alone and expected to 
work.
Jan 20 2016
prev sibling parent reply W.J. <invalid email.address> writes:
On Wednesday, 20 January 2016 at 16:01:11 UTC, Dibyendu Majumdar 
wrote:
 Hi,

 I am trying to understand the options for distributing a D app 
 to users. My assumption is that only the shared libraries and 
 binaries need to be distributed, and I need to include the D 
 libraries. Is this correct?

 Thanks and Regards
 Dibyendu
Hi, On Linux you can use 'ldd' to print shared library dependencies. On Windows you can use Dependency Walker. On Mac there's likely a similar program. Mind also that license terms for distributing libraries apply.
Jan 21 2016
parent reply FreeSlave <freeslave93 gmail.com> writes:
On Thursday, 21 January 2016 at 13:26:15 UTC, W.J. wrote:
 On Wednesday, 20 January 2016 at 16:01:11 UTC, Dibyendu 
 Majumdar wrote:
 Hi,

 I am trying to understand the options for distributing a D app 
 to users. My assumption is that only the shared libraries and 
 binaries need to be distributed, and I need to include the D 
 libraries. Is this correct?

 Thanks and Regards
 Dibyendu
Hi, On Linux you can use 'ldd' to print shared library dependencies. On Windows you can use Dependency Walker. On Mac there's likely a similar program. Mind also that license terms for distributing libraries apply.
OS X has otool -L Note that these tools don't show runtime dependencies. Many libraries can be loaded at runtime, especially when you use derelict-like modules. These libraries in their turn may depend on others, etc.
Jan 21 2016
parent W.J. <invalid email.address> writes:
On Thursday, 21 January 2016 at 14:03:03 UTC, FreeSlave wrote:
 On Thursday, 21 January 2016 at 13:26:15 UTC, W.J. wrote:
 On Wednesday, 20 January 2016 at 16:01:11 UTC, Dibyendu 
 Majumdar wrote:
 [...]
Hi, On Linux you can use 'ldd' to print shared library dependencies. On Windows you can use Dependency Walker. On Mac there's likely a similar program. Mind also that license terms for distributing libraries apply.
OS X has otool -L Note that these tools don't show runtime dependencies. Many libraries can be loaded at runtime, especially when you use derelict-like modules. These libraries in their turn may depend on others, etc.
Yes, except for Dependency Walker, which, if I recall, inspects the executable and can recognize runtime dependencies via LoadLibrary calls.
Jan 21 2016