libffi installed and recogonized by pkg-config, but not by glib

2k views Asked by At

I want to cross compile glib for Windows. configure throws this error:

configure: WARNING: using cross tools not prefixed with host triplet configure: error: Package requirements (libffi >= 3.0.0) were not met:

No package 'libffi' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix.

Alternatively, you may set the environment variables LIBFFI_CFLAGS and LIBFFI_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details.

However pkg-config --modversion libffi prints "3.1". I've installed both libffi and libffi-dev from the debian jessie repository.

(I'm not sure whether this might belong on superuser as it is also about package problems)

2

There are 2 answers

0
TheCodeArtist On BEST ANSWER

Checkout the steps to Bootstrap GLIB with MinGW


1. Essentially one needs to first Download the source, build and install libffi

cd /path/to/libffi/source
mkdir bld
cd bld
../configure --prefix=/mingw
make && make install

2. ...followed by building glib without PKG_CONFIG

cd /path/to/glib/source
mkdir bld
cd bld
export LIBFFI_CFLAGS='-I /mingw/lib/libffi-VERSION/include'
    VERSION is to be replaced with whatever version you built above.
    For me VERSION is 3.0.10.
export LIBFFI_LIBS=-lffi
export lt_cv_deplibs_check_method="pass_all"
export CFLAGS=”O0 -g -pipe -Wall -march=i486 -mms-bitfields -mthreads”
export CPPFLAGS=”-DG_ATOMIC_OP_USE_GCC_BUILTINS=1”
export LDFLAGS=”-Wl,--enable-auto-image-base”
../configure --prefix=/mingw --with-pcre=internal --disable-static --disable-gtk-doc --enable-silent-rules
make
make install

3. Subsequently, pkg_config can be built and installed.

4. Then glib can be rebuilt normally as follows:

cd /path/to/glib/source/bld
make clean
../configure --prefix=/mingw
make
make install
0
Daniel Diner On

On my case I got the next error message when running npm i :

node-gyp rebuild

Package libffi was not found in the pkg-config search path.
Perhaps you should add the directory containing `libffi.pc'
to the PKG_CONFIG_PATH environment variable
Package 'libffi', required by 'gobject-2.0', not found
gyp: Call to 'pkg-config --cflags  cairo poppler-qt5' returned exit status 1 while in binding.gyp. while trying to load binding.gyp

I figured out the problem was on exporting the PATH

So I ran brew reinstall -s poppler

At the end of the installation you can run the export of the paths

If you need to have qt first in your PATH run:
  echo 'export PATH="/usr/local/opt/qt/bin:$PATH"' >> ~/.zshrc

For compilers to find qt you may need to set:
  export LDFLAGS="-L/usr/local/opt/qt/lib"
  export CPPFLAGS="-I/usr/local/opt/qt/include"

For pkg-config to find qt you may need to set:
  export PKG_CONFIG_PATH="/usr/local/opt/qt/lib/pkgconfig"

This fixed it for me.

I hope you find it helpfull.