[FFmpeg-user] Configure error with fontconfig

Jim Worrall coniophora at gmail.com
Tue Apr 30 23:53:53 EEST 2024



> On Apr 30, 2024, at 11:29, Jim Worrall <coniophora at gmail.com> wrote:
> 
> 
> 
>> On Apr 30, 2024, at 09:41, Jim Worrall <coniophora at gmail.com> wrote:
>> 
>> 
>> 
>>> On Apr 29, 2024, at 23:00, Ferdi Scholten <ferdi at sttc-nlp.nl> wrote:
>>> 
>>> This may not be due to ffmpeg itself, but I would appreciate some help.
>>>> Configure says that pkg-config can’t find fontconfig.pc, but it seems to be
>>>> in the PKG_CONFIG_PATH.
>>>> 
>>>> # ./configure --cc=/usr/bin/gcc \
>>>> --prefix=$TARGET \
>>>> --pkg-config-flags="--static" \
>>>> --extra-cflags="-I/usr/local/include" \
>>>> --extra-ldflags="-L/usr/local/lib" \
>>>> --extra-libs="-lpthread -ldl -lstdc++" \
>>>> --enable-static --disable-shared \
>>>> --enable-nonfree --enable-gpl --enable-version3 \
>>>> --enable-libfribidi --enable-libfreetype --enable-libfontconfig \
>>>> --enable-libfdk-aac --enable-libx264 --enable-libx265 --disable-lzma
>>>> ERROR: fontconfig not found using pkg-config
>>>> 
>>>> ffbuild/config.log:
>>>> . . .
>>>> require_pkg_config libfontconfig fontconfig fontconfig/fontconfig.h FcInit
>>>> check_pkg_config libfontconfig fontconfig fontconfig/fontconfig.h FcInit
>>>> test_pkg_config libfontconfig fontconfig fontconfig/fontconfig.h FcInit
>>>> pkg-config --exists --print-errors fontconfig
>>>> Package fontconfig was not found in the pkg-config search path.
>>>> Perhaps you should add the directory containing `fontconfig.pc'
>>>> to the PKG_CONFIG_PATH environment variable
>>>> Package 'fontconfig', required by 'virtual:world', not found
>>>> ERROR: fontconfig not found using pkg-config
>>>> 
>>>> Here is fontconfig.pc:
>>>> # ll /usr/local/ffmpeg/packages/pkg-config/check/gtk/
>>>> total 224K
>>>> drwxr-xr-x 2 root root  28 Apr 28 11:14 ./
>>>> drwxr-xr-x 7 root root  72 Apr 28 11:14 ../
>>>> -rw-r--r-- 1 root root 232 Apr 28 11:14 atk.pc
>>>> -rw-r--r-- 1 root root 287 Apr 28 11:14 cairo-gobject.pc
>>>> -rw-r--r-- 1 root root 388 Apr 28 11:14 cairo.pc
>>>> -rw-r--r-- 1 root root 269 Apr 28 11:14 fontconfig.pc
>>>> 
>>>> The last path in PKG_CONFIG_PATH contains fontconfig.pc:
>>>> 
>>>> # echo $PKG_CONFIG_PATH
>>>> /lib:/usr/lib:usr/local:/usr/local/lib:/usr/local/lib/pkgconfig:
>>>> /usr/libdata/pkgconfig:/usr/local/libdata/:/usr/local/libdata/pkgconfig:
>>>> /usr/local/ffmpeg/target/lib:/usr/local/ffmpeg/target/lib/pkgconfig:
>>>> /usr/local/ffmpeg/target/share/pkgconfig:
>>>> /usr/local/ffmpeg/build/pkg-config/check/gtk/
>>>> _______________________________________________
>>> 
>>> Most likely the fontconfig package on your system is a shared library, it is not distributed as a static library. It therefor cannot be used in a static build with --disable-shared.
>>> 
>>> 
>>> Try building ffmpeg with shared libraries if you need fontconfig.
>> 
>> Thank you.  Before changing all the ffmpeg dependencies to shared libraries, 
>> I tried making a static fontconfig.  I removed the packaged fontconfig parts 
>> and built my own static fontconfig, but got the same “fontconfig not found" error.  
>> There is no .so file on the system with *fontconfig* in its name.
>> 
>> The relevant files may be:
>> /usr/local/ffmpeg/target/include/fontconfig/fontconfig.h
>> /usr/local/ffmpeg/target/lib/libfontconfig.la <http://libfontconfig.la/>
>> /usr/local/ffmpeg/target/lib/pkgconfig/fontconfig.pc
>> /usr/local/ffmpeg/target/lib/libfontconfig.a
>> 
>> 
>> 
>> fontconfig.pc contains:
>> # cat /usr/local/ffmpeg/target/lib/pkgconfig/fontconfig.pc
>> prefix=/usr/local/ffmpeg/target
>> exec_prefix=${prefix}
>> libdir=${exec_prefix}/lib
>> includedir=${prefix}/include
>> sysconfdir=${prefix}/etc
>> localstatedir=${prefix}/var
>> PACKAGE=fontconfig
>> confdir=${sysconfdir}/fonts
>> cachedir=${localstatedir}/cache/${PACKAGE}
>> 
>> Name: Fontconfig
>> Description: Font configuration and customization library
>> Version: 2.15.0
>> Requires:  freetype2 >= 21.0.15
>> Requires.private:  libxml-2.0 >= 2.6
>> Libs: -L${libdir} -lfontconfig
>> Libs.private:  
>> Cflags: -I${includedir}  
>> 
>> fontconfig.pc seems to be pointing to the right places (except sysconfdir=${prefix}/etc doesn’t exist; I don’t know what it would be looking for there).  I’m perplexed.
> 
> Small error; ${prefix}/etc DOES exist.  It contains a fonts directory.
> 

Many times the problem seems to actually be not finding lzma.  
But I have --disable-lzma in my configure command.
Here’s the end of config.log this time:
. . .
brotlicommon -lxml2 -licui18n -licuuc -licudata -lz -llzma -lm
/usr/bin/ld: cannot find -llzma: No such file or directory
collect2: error: ld returned 1 exit status
ERROR: fontconfig not found using pkg-config





More information about the ffmpeg-user mailing list