Compile a shared library
bitwise via Digitalmars-d
digitalmars-d at puremagic.com
Mon Apr 11 14:23:35 PDT 2016
On Sunday, 10 April 2016 at 05:34:24 UTC, Nafees wrote:
> I am trying to create a shared library, I just tried to compile
> the code that Mono-D generates for an empty shared library. I
> tried to compile it, but there were errors, and this is what
> the compile log said:
> <code>
> Building Solution: QScr (Debug)
>
> Building: QScr (Debug)
> Performing main compilation...
> Current dictionary: /home/nafees/Desktop/Projects/QScr/QScr
> dmd -debug -gc "myclass.d" "dllmain.d" "-I/usr/include/dmd"
> "-L/IMPLIB:/home/nafees/Desktop/Projects/QScr/QScr/bin/Debug/libQScr.a" "-odobj/Debug" "-of/home/nafees/Desktop/Projects/QScr/QScr/bin/Debug/libQScr.so" -w -vcolumns
> /usr/bin/ld: cannot find
> /IMPLIB:/home/nafees/Desktop/Projects/QScr/QScr/bin/Debug/libQScr.a: No such file or directory
> collect2: error: ld returned 1 exit status
> --- errorlevel 1
> Exit code 1
> Build complete -- 1 error, 0 warnings
>
> ---------------------- Done ----------------------
>
> Build: 1 error, 0 warnings
> </code>
>
> see, there is that .a file missing, I've no idea what it is.
> And I'm using DMD2 on Linux (Ubuntu 14.04). Any ideas how can I
> compile it?
IMPLIB is a linker flag for windows. Its possible that Mono-D is
not correctly identifying the OS for some code paths. I would
file a bug on github/mono-d.
As far as dmd goes though, shared library support is spotty at
the moment. AFAIK, shared libraries should work on linux, but I
haven't tried it myself. It may be a good idea to try and build
one manually to confirm.
Bit
More information about the Digitalmars-d
mailing list