[FFmpeg-cvslog] doc/faq: explain pkg-config basic setup.

Nicolas George git at videolan.org
Tue Dec 23 15:07:01 CET 2014


ffmpeg | branch: master | Nicolas George <george at nsup.org> | Tue Dec 23 10:34:48 2014 +0100| [40948819fcfe5bba39531df358dc50d52cee10d4] | committer: Nicolas George

doc/faq: explain pkg-config basic setup.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=40948819fcfe5bba39531df358dc50d52cee10d4
---

 doc/faq.texi |   50 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 50 insertions(+)

diff --git a/doc/faq.texi b/doc/faq.texi
index fdcb46d..3d94d4d 100644
--- a/doc/faq.texi
+++ b/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
 build is finished, but be sure to keep the main package.
 
+ at 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
+ at code{$PKG_CONFIG_PATH}:
+
+ at example
+export PKG_CONFIG_PATH=/opt/x264/lib/pkgconfig:/opt/opus/lib/pkgconfig
+ at end example
+
+If you need to @emph{replace} @command{pkg-config}'s search list
+(typical use case: cross-compiling), set it in
+ at code{$PKG_CONFIG_LIBDIR}:
+
+ at example
+export PKG_CONFIG_LIBDIR=/home/me/cross/usr/lib/pkgconfig:/home/me/cross/usr/local/lib/pkgconfig
+ at 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}:
+
+ at example
+./configure --pkg-config-flags=--static
+ at end example
+
+ at 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
+ at code{PKG_CONFIG_LIBDIR} set. That script can look like that:
+
+ at example
+#!/bin/sh
+PKG_CONFIG_LIBDIR=/path/to/cross/lib/pkgconfig
+export PKG_CONFIG_LIBDIR
+exec /usr/bin/pkg-config "$@@"
+ at end example
+
 @chapter Usage
 
 @section ffmpeg does not work; what is wrong?



More information about the ffmpeg-cvslog mailing list