[FFmpeg-user] Static compile with embeded 3rd party libraries.

Thomas Worth dev at rarevision.com
Fri Aug 26 13:34:35 CEST 2011


On Fri, Aug 26, 2011 at 3:47 AM, Tim Nicholson <tim.nicholson at bbc.co.uk> wrote:
> On 26/08/11 11:01, Thomas Worth wrote:
>>
>> On Fri, Aug 26, 2011 at 2:25 AM, James Darnley<james.darnley at gmail.com>
>>  wrote:
>>>
>>> On 26/08/2011, Tim Nicholson<tim.nicholson at bbc.co.uk>  wrote:
>>>>
>>>> On 25/08/11 19:01, James Darnley wrote:
>>>>>
>>>>> Do you have a static libfaac?
>>>>
>>>> According to yast, yes!
>>>>
>>>> libfaac-devel - Header files and static library for the faac library
>>>>
>>>> /usr/include/faac.h
>>>> /usr/include/faaccfg.h
>>>> /usr/lib64/libfaac.so
>>>
>>> You might want to check that.  I thought static libs were usually *.a
>>> and shared ones *.so.
>>
>> "so" means "shared object" as far as I know. That's a shared lib.
>> Static is .a, as James pointed out.
>>
>
> Ahh. I'm more of a dynamic language man myself, C(++) not really my thing,
> so I'm still get used to the intricacies of compiler/linking etc.
>
> So I will need to build all the third party includes statically first then,
> as the distro only includes the shared.so and C headers....

Yeah, you'll need to compile your third-party libs from source using
--disable-shared on the configure line.

You can probably do "make install," which will put the static libs in
system location(s). FFmpeg's configure should then be able to find
them. I don't like doing this though because I would rather not junk
up my system with static libs that I only use to build static binaries
of other programs. This is a problem though, because once you compile
many third-party libs they put the libs in some hidden directory. So,
you might have /libfaac/include with your headers, but no libfaac.a is
obvious so you don't know what path to give to configure. That's
because it's in /libfaac/.libs/libfaac.a, which is hidden. I
discovered that several third-party sources do it this way. I'm not
sure why, but it's annoying.

If anyone has a better solution to this, I'd love to hear.


More information about the ffmpeg-user mailing list