libtool
[Top][All Lists]
Advanced

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

Re: Libtool is looking for main() when linking shared library


From: Satz Klauer
Subject: Re: Libtool is looking for main() when linking shared library
Date: Mon, 21 Mar 2011 12:34:36 +0100

On 3/21/11, Peter Rosin <address@hidden> wrote:
> Den 2011-03-21 07:36 skrev Satz Klauer:
>> Hi,
>>
>> I try to use libtool to limit the number of symbols exported by a
>> shared library. My previous call to create this library looked like
>> this and worked fine:
>>
>> g++ -shared   -o ../libmylib.so libmylib.o -pthread -ldl
>>
>> Now I modified it so that my resulting libmylib.so only exports
>> symbols that start with mylib_ :
>>
>> libtool --mode=link g++ -shared   -o ../libmylib.so libmylib.o
>> -pthread -ldl -export-symbols-regex mylib_
>>
>> But despite the keyword "shared" now libtool complains about a missing
>> function main(), means it tries to create an executable program
>> instead of a shared library.
>>
>> What am I doing wrong here?
>
> -shared is not how you tell libtool to build a shared library (and you do
> not want to build a shared library behind the back of libtool by manually
> passing -shared to g++, that would defeat the purpose of libtool). You need
> to specify "-rpath /where/to/install" to make libtool build what is called
> a "libtool library".  If a "libtool library" ends up shared, static or
> both depends on the system and on how libtool was configured (see
> configure options --disable-shared and --disable-static).  You also want
> to link with .lo files instead of .o files, i.e. "libtool objects" instead
> of ordinary plain old objects.  "Libtool objects" are created with e.g.
> "libtool --mode=compile g++ -o foo.lo foo.cpp" instead of plain old
> "g++ -o foo.o foo.cpp"
>
> So,
>
> libtool --mode=compile g++ -o libmylib.lo libmylib.cpp
> libtool --mode=link g++ -o ../libmylib.la libmylib.lo -pthread -ldl
> -export-symbols-regex mylib_ -rpath /usr/local/lib
>
> might work better (untested)

That works a bit better - so at least I get a shared library now.

Unfortunately the -export-symbols-regex  seem not to work, it still
exports all symbols, not only the ones that start with/contain
"mylib_".

Elmi



reply via email to

[Prev in Thread] Current Thread [Next in Thread]