Question

I'm building Virtuoso Opensource after doing ./configure --enable_mono - works fine. Calling make then gives me an error, because libgc is not found.

make[2]: Entering directory `/usr/local/src/virtuoso-opensource/libsrc/Thread'
/bin/bash ../../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I../../libsrc/Dk    -fno-strict-aliasing -O2  -DMONO_USE_EXC_TABLES -fexceptions -D_REENTRANT -D_GNU_SOURCE -Wall  -DNDEBUG -DPOINTER_64   -I/usr/local/src/virtuoso-opensource/libsrc/Xml.new  -DOPENSSL_NO_KRB5 -Dlinux -D_GNU_SOURCE -DFILE64 -D_LARGEFILE64_SOURCE -I../../binsrc/mono/mono-1.1.7/libgc/include -I../../libsrc -I../../libsrc/Dk -DNO_UDBC_SDK -DUSE_INCLUDED_LIBGC=1 -g -O2 -MT libthrp_gc_la-sched_pthread_gc.lo -MD -MP -MF .deps/libthrp_gc_la-sched_pthread_gc.Tpo -c -o libthrp_gc_la-sched_pthread_gc.lo `test -f 'sched_pthread_gc.c' || echo './'`sched_pthread_gc.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I../../libsrc/Dk -fno-strict-aliasing -O2 -DMONO_USE_EXC_TABLES -fexceptions -D_REENTRANT -D_GNU_SOURCE -Wall -DNDEBUG -DPOINTER_64 -I/usr/local/src/virtuoso-opensource/libsrc/Xml.new -DOPENSSL_NO_KRB5 -Dlinux -D_GNU_SOURCE -DFILE64 -D_LARGEFILE64_SOURCE -I../../binsrc/mono/mono-1.1.7/libgc/include -I../../libsrc -I../../libsrc/Dk -DNO_UDBC_SDK -DUSE_INCLUDED_LIBGC=1 -g -O2 -MT libthrp_gc_la-sched_pthread_gc.lo -MD -MP -MF .deps/libthrp_gc_la-sched_pthread_gc.Tpo -c sched_pthread_gc.c  -fPIC -DPIC -o .libs/libthrp_gc_la-sched_pthread_gc.o
sched_pthread_gc.c:41:16: fatal error: gc.h: No such file or directory
compilation terminated.
make[2]: *** [libthrp_gc_la-sched_pthread_gc.lo] Error 1
make[2]: Leaving directory `/usr/local/src/virtuoso-opensource/libsrc/Thread'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/local/src/virtuoso-opensource/libsrc'
make: *** [all-recursive] Error 1
dellas@india672:/usr/local/src/virtuoso-opensource$ 

I just did sudo apt-get install libgc-dev which worked. Make still gives me the same error. I'm a Linux noob, can somebody give me advice what might be the problem here or how to solve it?

EDIT: FYI: ldconfig -v -p clearly says that libgc.so exists, so why is this make script looking for the header?

...
libgdbm_compat.so.3 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libgdbm_compat.so.3
libgdbm.so.3 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libgdbm.so.3
libgd.so.2 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libgd.so.2
libgcrypt.so.11 (libc6,x86-64) => /lib/x86_64-linux-gnu/libgcrypt.so.11
libgccpp.so.1 (libc6,x86-64) => /usr/lib/libgccpp.so.1
libgccpp.so (libc6,x86-64) => /usr/lib/libgccpp.so
libgcc_s.so.1 (libc6,x86-64) => /lib/x86_64-linux-gnu/libgcc_s.so.1
libgc.so.1 (libc6,x86-64) => /usr/lib/libgc.so.1
libgc.so (libc6,x86-64) => /usr/lib/libgc.so
libgamin-1.so.0 (libc6,x86-64) => /usr/lib/libgamin-1.so.0
libgailutil.so.18 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libgailutil.so.18
libfuse.so.2 (libc6,x86-64) => /lib/libfuse.so.2
...
Was it helpful?

Solution 2

The Virtuoso mono hosting support is for version 1.x and will not work with the current 2.x and later releases for which support needs to be schedule for addition ...

Is is specifically mono runtime support you are seeking or maybe just the ADO.Net Provider for Mono, which can be built using:

cd binsrc/VirtuosoClient.Net
gmake -f Makefile.mono

Best Regards Hugh Williams

OTHER TIPS

You should check the contents that were provided by the libgc-dev package. There is generally a compatibility file in /usr/include called gc.h, who's only purpose is to #include <gc/gc.h>. Your distirbution may not have this file, which is causing the compilation problem.

To check the contents of libgc-dev, you do a:

dpkg-query -L libgc-dev

This will list all the files that were provided by this package. If it doesn't contain /usr/include/gc.h, then you may need to alter the #include to read #include <gc/gc.h>, or change the makefile to add: -I/usr/include/gc. I'd change the -I option as a last resort.

As an alternative, you can add a file in /usr/include called gc.h with the simple content:

/* This file is installed for backward compatibility. */
#include <gc/gc.h>
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top