Can't make use of any headers

jallersma via D.gnu d.gnu at puremagic.com
Fri Jul 7 06:27:42 PDT 2017


Thanks for the reply Mike.
It clarifies how dub works. I tried to let dub handle the 
dependencies. Unfortunately, with no luck. The package is known 
to dub ('gui' is a package created by me):

$ dub list
Packages present in the system and known to dub:
   gui ~master: /home/name/repo/addr/code/gui/
   gtk-d 3.6.5: /home/name/.dub/packages/gtk-d-3.6.5/
   gtk-d:gtkd 3.6.5: /home/name/.dub/packages/gtk-d-3.6.5/
   gtk-d:gtkdgl 3.6.5: /home/name/.dub/packages/gtk-d-3.6.5/
   gtk-d:sv 3.6.5: /home/name/.dub/packages/gtk-d-3.6.5/
   gtk-d:gstreamer 3.6.5: /home/name/.dub/packages/gtk-d-3.6.5/
   gtk-d:vte 3.6.5: /home/name/.dub/packages/gtk-d-3.6.5/
   gtk-d:peas 3.6.5: /home/name/.dub/packages/gtk-d-3.6.5/

But I get errors though:

$ sudo dub build gui
Building package gui in /home/name/repo/addr/code/gui/
Performing "debug" build using gdc for x86_64.
gui ~master: building configuration "application"...
source/main.d:1:8: error: module MainWindow is in file 
'gtk/MainWindow.d' which cannot be read
  import gtk.MainWindow, gtk.Box, gtk.Main;
         ^
import path[0] = /usr/lib/gcc/x86_64-linux-gnu/5/include/d
import path[1] = /home/name/repo/addr/code/gui/source
gdc failed with exit code 1.


After some trail and error, I thought of a solution: build gtkd 
by myself using it's repo. Running 'sudo make' informed me of 
something odd:

$ sudo make
gdc -O2 -Igenerated/gtkd -c generated/gtkd/gtkd/Implement.d -o 
generated/gtkd/gtkd/Implement.o
generated/gtkd/gtkd/Implement.d:24:8: error: module meta is in 
file 'std/meta.d' which cannot be read
  import std.meta;
         ^
import path[0] = /usr/lib/gcc/x86_64-linux-gnu/5/include/d
import path[1] = /home/name/repo/GtkD/generated/gtkd
GNUmakefile:228: recept voor doel 
'generated/gtkd/gtkd/Implement.o' is mislukt
make: *** [generated/gtkd/gtkd/Implement.o] Fout 1


Going through my dir, meta.d is missing indeed:

$ ls /usr/lib/gcc/x86_64-linux-gnu/5/include/d/std
algorithm      csv.d         math.d         socket.d        uni.d
array.d        datetime.d    mathspecial.d  socketstream.d  uri.d
ascii.d        demangle.d    mmfile.d       stdint.d        utf.d
base64.d       digest        net            stdiobase.d     uuid.d
bigint.d       encoding.d    numeric.d      stdio.d         
variant.d
bitmanip.d     exception.d   outbuffer.d    stream.d        
windows
c              experimental  parallelism.d  string.d        xml.d
compiler.d     file.d        path.d         syserror.d      zip.d
complex.d      format.d      process.d      system.d        zlib.d
concurrency.d  functional.d  random.d       traits.d
container      getopt.d      range          typecons.d
conv.d         internal      regex          typelist.d
cstream.d      json.d        signals.d      typetuple.d

Which makes me come back to Johannes, if I understand your link 
to std.meta right, std.meta is part of std/typetuple.d. Why does 
my compiler not look in std/typetuple.d instead? Maybe someone 
has a meta.d file for me? :p


More information about the D.gnu mailing list