Search Postgresql Archives

Re: writing a foreign data wrapper for hdfs, but getting and undefined symbol error for hdfsConnect

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Tom,

Thanks for the tip, I altered the gcc invocation as follows:

Here are the two gcc invocations originally creating the shared library:

gcc -Wall -fPIC -c mylibrary.c -o mylibrary.o \
-I $(A) -I $(B) -I $(C) -I $(E) -lhdfs
	
gcc -I $(A) -I $(B) -I $(C) -I $(E) -shared\
-Wl,-soname,mylibrary.so -o mylibrary.so mylibrary.o

#############################
Here's the new invocations: I added "-lhdfs" to the second gcc invocation.

gcc -I $(A) -I $(B) -I $(C) -I $(E) -shared\
 -lhdfs -Wl,-soname,mylibrary.so -o mylibrary.so mylibrary.o

Now I can see the libraries!

ldd mylibrary.so
        linux-vdso.so.1 =>  (0x00007fff499c5000)
        libhdfs.so.0 => /usr/lib/libhdfs.so.0 (0x00007f44e4739000)
        libc.so.6 => /lib/libc.so.6 (0x00007f44e43b6000)
        libjvm.so => /usr/lib/jvm/java-6-
openjdk/jre/lib/amd64/server/libjvm.so (0x00007f44e3866000)
        libdl.so.2 => /lib/libdl.so.2 (0x00007f44e3662000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x00007f44e3445000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f44e4b66000)
        libm.so.6 => /lib/libm.so.6 (0x00007f44e31c1000)


> "Rob_pg" <robert7390@xxxxxxxxxxx> writes:
> > I've been working on creating a foreign data wrapper for hdfs on using
> > version 9.1.0. This is my first time creating C functions against
> > postgres, so hopefully this falls under the 'newbie' category and is
> > easy to solve.
> > 
> > The source code code does compile resulting in a shared library:
> > 
> > file mylibrary.so: ELF 64-bit LSB shared object, x86-64, version 1
> > (SYSV), dynamically linked, not stripped
> > 
> > ldd mylibrary.so
> > 
> >         linux-vdso.so.1 =>  (0x00007fff40fff000)
> >         libc.so.6 => /lib/libc.so.6 (0x00007f3adb8cc000)
> >         /lib64/ld-linux-x86-64.so.2 (0x00007f3adbe72000)
> 
> The reason it's not working is that libhdfs.so isn't listed as a
> requirement for mylibrary.so.  You did not show us your link command
> for mylibrary.so, but most likely there needs to be a -lhdfs in it.
> 
> 			regards, tom lane

-- 
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux