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

Reply via email to