[FFmpeg-user] Static compile with embeded 3rd party libraries.
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>
>>> 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
>>> 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