The proper case for D.

Walter Bright newshound1 at digitalmars.com
Sun Jun 21 02:04:38 PDT 2009


Robert Fraser wrote:
> Hmmm... well, I built a 3rd-party library (Platinum UPnP + Neptune) into 
> two static libraries (with VS). I then wrote a C wrapper function around 
> one, just to test out the functionality I needed (a fraction of what was 
> available). Originally, I wanted to statically link it with my D project 
> so I ran objconv on the libs (COFF -> OMF). I created a test D app that 
> was basically just:
> 
> extern(C) int cMain();
> int main(char[][] args) { return cMain(); }
> 
> ... And linked it to the OMF version of the library. Worked fine, but 
> the result was ~12MB, which is about 200k larger than the two libraries. 
> I'm now using VC++ to build it into a DLL that exposes the function. 
> 802kb for a debug DLL, 280k for a release.
> 
> The same thing is happening with my other library (ffmpeg -- libavcodec, 
> libavformat, libavutil and swscale), which I built as static libraries 
> with MinGW gcc and converted again with objconv. In this case, I'm too 
> lazy to create a DLL to wrap only the functions I want, though I may end 
> up doing just that once my project gets closer to usable.

It may be a problem with objconv where it puts everything into one obj file.



More information about the Digitalmars-d mailing list