Import module
Mike Parker via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Thu Jul 9 20:11:23 PDT 2015
On Friday, 10 July 2015 at 00:53:38 UTC, codenstuff wrote:
> The path is ${HOME}/d_apps/steering/steering/game_object.d
>
> Compile command is
>
> dmd map/map.d main_visual.d -ofmain_visual -H -gc -unittest
> -L-lDgame -L-lDerelictUtil -L-lDerelictGL3 -L-lDerelictSDL2
> -L-ldl -I/home/real/d_apps/dgame/source
> -I/home/real/d_apps/derelict_util/source
> -I/home/real/d_apps/derelict_gl3/source
> -I/home/real/d_apps/derelict_sdl2/source
> -I/home/real/d_apps/steering
>
> Compiler message is same
First, because you are importing sterring.game_object, then you
can't pass -I/home/real/d_apps/steering to the compiler -- this
will cause it to look for
/home/real/d_apps/steering/sterring/game_object.d. You have to
pass the parent of the steering directory, i.e. -I/home
real/d_apps. Then it will be able to find the import.
Second, the above will only solve your immediate problem. The
next problem is that you are going to run into linking errors.
The -I switch only affects how the compiler can find which
symbols are available in a module. It does not affect which
modules get compiled. You will still need compile game_object.d,
and all of the files from Dgame, DerelictUtil, DerelictGL3 and
DerelictSDL2. The latter all have dub configurations that allow
you to easily compile them into libraries. Then you can pass all
of those on the command line, along with game_object.d (as Adam
already recommended).
Since all of the projects you are using have dub packages, it
will be much easier for you to use dub to manage your own
project. Then building becomes this:
dub build
Much less hassle.
More information about the Digitalmars-d-learn
mailing list