On 19-08-17 04:07, Johnson Jones wrote:
Still getting this!
What I don't understand is why I can import certain libraries and they
compile fine while others don't!
So, moduleInfo is a "function" per module that is created at
compilation, right?
If one doesn't compile the module then the error results, just like
standard extern functions. When I don't include the file in the project,
it doesn't get compiled, even though it gets "imported"? Why? Why can't
D just know, hey, module X imports module Y, module Y needs to be
compiled to add moduleInfo?
For example, I am trying to get ffmpeg to work. I downloaded from
https://github.com/complistic-gaff/ffmpeg-d
extracted, put that path in my includes(sc.ini). created a module to
import the standard modules, tried to compile my project and I get a
bunch of ModuleInfo errors relating to the imports I added.
I use GtkD exactly the same, yet no errors.
Now, the only difference is that I import the gtkD.lib. I'm assuming
that all the moduleInfo's of the 1000+ gtk files are in that lib and so
That is the reason I don't have the compile them all, is that correct?
If so, how can I generate such a lib of moduleInfo's recursively for a
directory so I can pick up all the files and just import it once?
ffmpeg doesn't require compiling but I don't wanna have to include ever
file in to my project just to be able to get it to work because of the
moduleInfo's are missing.
Looking at the build.d for gtkD, it looks like it builds a list of all
the files to compile and does it recursively.
I imagine it can be modified for ffmpeg too to create a utility to solve
this problem. Dmd should have a mode to do this automatically, it's
quite an annoying problem ;/
You need to either compile ffmpeg-d in to a library and include it when
you are building your application, or pass all the ffmpeg-d source files
to the compiler.
It looks like ffmpeg-d only has a dub.json file for building so you will
need to use dub to build it eg: `dub build` from the root of the project.
--
Mike Wey