mirror of https://git.ffmpeg.org/ffmpeg.git
doc/faq: explain pkg-config basic setup.
This commit is contained in:
parent
32c836cb11
commit
40948819fc
50
doc/faq.texi
50
doc/faq.texi
|
@ -90,6 +90,56 @@ To build FFmpeg, you need to install the development package. It is usually
|
||||||
called @file{libfoo-dev} or @file{libfoo-devel}. You can remove it after the
|
called @file{libfoo-dev} or @file{libfoo-devel}. You can remove it after the
|
||||||
build is finished, but be sure to keep the main package.
|
build is finished, but be sure to keep the main package.
|
||||||
|
|
||||||
|
@section How do I make @command{pkg-config} find my libraries?
|
||||||
|
|
||||||
|
Somewhere along with your libraries, there is a @file{.pc} file (or several)
|
||||||
|
in a @file{pkgconfig} directory. You need to set environment variables to
|
||||||
|
point @command{pkg-config} to these files.
|
||||||
|
|
||||||
|
If you need to @emph{add} directories to @command{pkg-config}'s search list
|
||||||
|
(typical use case: library installed separately), add it to
|
||||||
|
@code{$PKG_CONFIG_PATH}:
|
||||||
|
|
||||||
|
@example
|
||||||
|
export PKG_CONFIG_PATH=/opt/x264/lib/pkgconfig:/opt/opus/lib/pkgconfig
|
||||||
|
@end example
|
||||||
|
|
||||||
|
If you need to @emph{replace} @command{pkg-config}'s search list
|
||||||
|
(typical use case: cross-compiling), set it in
|
||||||
|
@code{$PKG_CONFIG_LIBDIR}:
|
||||||
|
|
||||||
|
@example
|
||||||
|
export PKG_CONFIG_LIBDIR=/home/me/cross/usr/lib/pkgconfig:/home/me/cross/usr/local/lib/pkgconfig
|
||||||
|
@end example
|
||||||
|
|
||||||
|
If you need to know the library's internal dependencies (typical use: static
|
||||||
|
linking), add the @code{--static} option to @command{pkg-config}:
|
||||||
|
|
||||||
|
@example
|
||||||
|
./configure --pkg-config-flags=--static
|
||||||
|
@end example
|
||||||
|
|
||||||
|
@section How do I use @command{pkg-config} when cross-compiling?
|
||||||
|
|
||||||
|
The best way is to install @command{pkg-config} in your cross-compilation
|
||||||
|
environment. It will automatically use the cross-compilation libraries.
|
||||||
|
|
||||||
|
You can also use @command{pkg-config} from the host environment by
|
||||||
|
specifying explicitly @code{--pkg-config=pkg-config} to @command{configure}.
|
||||||
|
In that case, you must point @command{pkg-config} to the correct directories
|
||||||
|
using the @code{PKG_CONFIG_LIBDIR}, as explained in the previous entry.
|
||||||
|
|
||||||
|
As an intermediate solution, you can place in your cross-compilation
|
||||||
|
environment a script that calls the host @command{pkg-config} with
|
||||||
|
@code{PKG_CONFIG_LIBDIR} set. That script can look like that:
|
||||||
|
|
||||||
|
@example
|
||||||
|
#!/bin/sh
|
||||||
|
PKG_CONFIG_LIBDIR=/path/to/cross/lib/pkgconfig
|
||||||
|
export PKG_CONFIG_LIBDIR
|
||||||
|
exec /usr/bin/pkg-config "$@@"
|
||||||
|
@end example
|
||||||
|
|
||||||
@chapter Usage
|
@chapter Usage
|
||||||
|
|
||||||
@section ffmpeg does not work; what is wrong?
|
@section ffmpeg does not work; what is wrong?
|
||||||
|
|
Loading…
Reference in New Issue