How to link to libdl under linux
Xavier Bigand
flamaros.xavier at gmail.com
Thu Dec 19 12:30:03 PST 2013
Le 19/12/2013 13:46, MrSmith a écrit :
> Still need help. I've tried compiling a little test project with dub and
> it compiled. Then i tried to compile it by hand and got the same error.
> I think there is some issue in my command with parameter ordering.
>
> Here is test project
>
> module test;
>
> import derelict.glfw3.glfw3;
> import std.stdio;
>
> void main() {
> DerelictGLFW3.load();
> writeln("test");
> }
>
> with package
>
> {
> "targetName": "test",
> "dependencies": {
> "derelict-glfw3": "~master"
> },
> "targetType":"executable",
> "name": "test",
> "sourceFiles":["./test.d"]
> }
>
> The dub does two step compilation:
> dmd -m32
> -of.dub/build/application-debug-x86-dmd-DA39A3EE5E6B4B0D3255BFEF95601890AFD80709/test
> -c
> -of.dub/build/application-debug-x86-dmd-DA39A3EE5E6B4B0D3255BFEF95601890AFD80709/test.o
> -debug -g -w -version=Have_test -version=Have_derelict_glfw3
> -version=Have_derelict_util
> -I../../.dub/packages/derelict-glfw3-master/source
> -I../../.dub/packages/derelict-util-1.0.0/source test.d
> ../../.dub/packages/derelict-glfw3-master/source/derelict/glfw3/package.d ../../.dub/packages/derelict-glfw3-master/source/derelict/glfw3/glfw3.d
> ../../.dub/packages/derelict-util-1.0.0/source/derelict/util/xtypes.d
> ../../.dub/packages/derelict-util-1.0.0/source/derelict/util/exception.d
> ../../.dub/packages/derelict-util-1.0.0/source/derelict/util/system.d
> ../../.dub/packages/derelict-util-1.0.0/source/derelict/util/loader.d
> ../../.dub/packages/derelict-util-1.0.0/source/derelict/util/sharedlib.d
> ../../.dub/packages/derelict-util-1.0.0/source/derelict/util/wintypes.d
> Linking...
> dmd
> -of.dub/build/application-debug-x86-dmd-DA39A3EE5E6B4B0D3255BFEF95601890AFD80709/test
> .dub/build/application-debug-x86-dmd-DA39A3EE5E6B4B0D3255BFEF95601890AFD80709/test.o
> -L-ldl -m32 -g
> Copying target from
> /home/andrey/test/.dub/build/application-debug-x86-dmd-DA39A3EE5E6B4B0D3255BFEF95601890AFD80709/test
> to /home/andrey/test
>
>
> So, do i need to use two step compilation or i need proper ordering of
> parameters?
> One more question: why dub uses -of flag twice?
I use pragma(lib, "dl"), but it doesn't work with DUB cause it separate
build and link steps. I like the idea that sources knows them selves how
they have to be build. I think it's possible to simply do rdmd main.d
when using pragma(lib, "xxx").
For dub, add this line in your package.json :
"libs-posix": ["dl"],
More information about the Digitalmars-d-learn
mailing list