Re: Compiling a shared lib

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

 



On 02/12/2010 05:53 AM, Marcus Clyne wrote:

> I'm trying to compile a shared library, but am having problems.
> I have one main binary, which will load one or several shared libraries
> that all use a common set of functions.  The functions common to all the
> shared libraries I would like to store either in another shared library,
> which the shared libraries themselves load, or (preferably) in the main
> binary itself.
> 
> I'm using the following commands for compilation (simplified):
> 
> [1] gcc -Wall -fPIC -o shared.o -c file.c
> [2] gcc -shared -o shared.so shared.o
> 
> The error message I'm getting is:
> 
> shared.o: relocation R_X86_64_PC32 against undefined symbol `my_func'
> can not be used when making a shared object; recompile with -fPIC
> /usr/bin/ld: final link failed: Bad value
> collect2: ld returned 1 exit status
> 
> Where my_func is one of the common functions that I want to define
> outside the shared library.  I get this both when my_func is defined in
> the main binary, and when it is defined in another shared object
> (libcommon), and I add the following to [2]
> 
> -L/path/to/libcommon/dir -lcommon

That looks right.  Maybe your libcommon.so doesn't have the right name?
Hard to say, you haven't provided enough details.

Andrew.

[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux