[redland-dev] Problems with Tcl interface...

Georgios Petasis petasis at iit.demokritos.gr
Wed Mar 24 06:46:44 GMT 2004


Dear sirs,
 
I am trying to use the redland package, initially from its
Tcl interface. However, something is wrong with the dynamic
library. In my system (fedora core 1), the following commands
where perfomed to produce the shared library:
 
 gcc -DHAVE_CONFIG_H  -I..    -DLIBRDF_INTERNAL=1 -g  -fPIC -DPIC 
 -I../librdf -I/disk2b/local/include -DUSE_TCL_STUBS Redland_wrap.c -c -o 
 Redland_wrap.so
 gcc -DLIBRDF_INTERNAL=1 -g -shared Redland_wrap.so -L/disk2b/local/lib 
 -ltclstub8.5 
 -L/disk2b/local/sources/Development/XML/redland-0.9.16/librdf/.libs 
 -lrdf -lcrypto -ldb-4.1 -L/usr/lib/mysql -lmysqlclient -lz -lcrypt -lnsl 
 -lm -L/disk2b/local/sources/Development/XML/redland-0.9.16/raptor/.libs 
 -lraptor -lcurl -L/usr/kerberos/lib -lssl -lcrypto -lgssapi_krb5 -lkrb5 
 -lcom_err -lk5crypto -lresolv -ldl -lz -L/usr/kerberos/lib -lz -lssl 
 -lcrypto -lssl -lcrypto -lgssapi_krb5 -lkrb5 -lcom_err -lk5crypto 
 -lresolv -ldl -lz -lz -L/usr/lib -lxml2 -lz -lpthread -lm -lglib-2.0 -o 
 Redland.so
 if test `uname` = Darwin; then \
   /usr/bin/install -c Redland.so Redland.dylib; \
 fi
 touch Redland-stamp
 
 First of all, the compilation define USE_TCL_STUBS was added by me. Is 
 there any particularly
 reason its not defined by default? The idea is that you define this 
 symbol, and you link
 with tclstub<version> instead tcl<version> and you get a shared library 
 that can work in
 almost all tcl versions. I think such support should exist by default :-)
 
 However, the produced shared library cannot be loaded from tcl, due to 
 undefined symbols.
 Ldd reports on this:
 
 ldd -d Redland.so
         librdf.so.0 => not found
         libcrypto.so.4 => /lib/libcrypto.so.4 (0x0099e000)
        libdb-4.1.so => /usr/lib/tls/libdb-4.1.so (0x00111000)
         libmysqlclient.so.10 => /usr/lib/mysql/libmysqlclient.so.10 
 (0x002ce000)
         libz.so.1 => /usr/lib/libz.so.1 (0x00712000)
         libcrypt.so.1 => /lib/libcrypt.so.1 (0x0041f000)
         libnsl.so.1 => /lib/libnsl.so.1 (0x00fd8000)
         libm.so.6 => /lib/tls/libm.so.6 (0x00384000)
         libraptor.so.1 => not found
         libcurl.so.2 => /usr/lib/libcurl.so.2 (0x001d2000)
         libssl.so.4 => /lib/libssl.so.4 (0x001fb000)
         libgssapi_krb5.so.2 => /usr/lib/libgssapi_krb5.so.2 (0x00230000)
         libkrb5.so.3 => /usr/lib/libkrb5.so.3 (0x00243000)
         libcom_err.so.2 => /lib/libcom_err.so.2 (0x00e11000)
         libk5crypto.so.3 => /usr/lib/libk5crypto.so.3 (0x00338000)
         libresolv.so.2 => /lib/libresolv.so.2 (0x00530000)
         libdl.so.2 => /lib/libdl.so.2 (0x002aa000)
         libxml2.so.2 => /usr/lib/libxml2.so.2 (0x00542000)
         libpthread.so.0 => /lib/tls/libpthread.so.0 (0x00b3f000)
         libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0x003a6000)
         libc.so.6 => /lib/tls/libc.so.6 (0x00723000)
         /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x0035d000)
 undefined symbol: librdf_version_string (./Redland.so)
 undefined symbol: librdf_version_minor  (./Redland.so)
 undefined symbol: librdf_version_decimal        (./Redland.so)
 undefined symbol: librdf_version_release        (./Redland.so)
 undefined symbol: librdf_copyright_string       (./Redland.so)
 undefined symbol: librdf_version_major  (./Redland.so)
 undefined symbol: librdf_short_copyright_string (./Redland.so)
 
 The library was created by:
 gcc -shared  .libs/rdf_init.o .libs/rdf_uri.o .libs/rdf_node.o 
 .libs/rdf_statement.o .libs/rdf_digest.o .libs/rdf_hash.o 
 .libs/rdf_hash_cursor.o .libs/rdf_hash_memory.o .libs/rdf_model.o 
 .libs/rdf_model_storage.o .libs/rdf_iterator.o .libs/rdf_concepts.o 
 .libs/rdf_list.o .libs/rdf_storage.o .libs/rdf_storage_list.o 
 .libs/rdf_storage_hashes.o .libs/rdf_storage_file.o .libs/rdf_stream.o 
 .libs/rdf_parser.o .libs/rdf_heuristics.o .libs/rdf_files.o 
 .libs/rdf_utf8.o .libs/rdf_query.o .libs/rdf_query_triples.o 
 .libs/rdf_serializer.o .libs/rdf_serializer_raptor.o 
 .libs/rdf_serializer_rdfxml.o .libs/rdf_digest_openssl.o 
 .libs/rdf_hash_bdb.o .libs/rdf_parser_raptor.o 
 .libs/rdf_storage_mysql.o  -Wl,--rpath 
 -Wl,/disk2b/local/sources/Development/XML/redland-0.9.16/raptor/.libs 
 -Wl,--rpath -Wl,/disk2b/local/redland/lib -L/usr/lib -L/usr/kerberos/lib 
 -lcrypto /usr/lib/libdb-4.1.so -L/usr/lib/mysql -lmysqlclient -lz 
 -lcrypt -lnsl -lm ../raptor/.libs/libraptor.so  -Wl,-soname 
 -Wl,librdf.so.0 -o .libs/librdf.so.0.0.0
 
 ar cru .libs/librdf.a  rdf_init.o rdf_uri.o rdf_node.o rdf_statement.o 
 rdf_digest.o rdf_hash.o rdf_hash_cursor.o rdf_hash_memory.o rdf_model.o 
 rdf_model_storage.o rdf_iterator.o rdf_concepts.o rdf_list.o 
 rdf_storage.o rdf_storage_list.o rdf_storage_hashes.o rdf_storage_file.o 
 rdf_stream.o rdf_parser.o rdf_heuristics.o rdf_files.o rdf_utf8.o 
 rdf_query.o rdf_query_triples.o rdf_serializer.o rdf_serializer_raptor.o 
 rdf_serializer_rdfxml.o rdf_digest_openssl.o rdf_hash_bdb.o 
 rdf_parser_raptor.o rdf_storage_mysql.o
 ranlib .libs/librdf.a
 creating librdf.la
 
 which seems quite right. Any ideas?
 (The symbols exist in .libs/rdf_init.o but not in the library?)
 
 Regards,
 
 George Petasis 



More information about the redland-dev mailing list