LINUX.ORG.RU

pkg-config и лыжи не едут

 , , ,


0

1

Собираю-компиляю... Получается какая-то фигня с pkg-config. После сборки libffi должно всё компиляться с -lffi, но нет.

Мой ld говорит cannot find -lffi, хотя libffi.pc лежит в PKG_CONFIG_PATH и содержит следующее:

prefix=/home/golovin/tmp/wayland
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${libdir}/libffi-3.0.13/include

Name: libffi
Description: Library supporting Foreign Function Interfaces
Version: 3.0.13
Libs: -L${libdir} -lffi
Cflags: -I${includedir}


Ничего не понятно? Вырвано из контекста? Тогда есть другой вариант.
Для воспроизведения возьмите тулчейн и выполните эти команды:
WLD=$HOME/tmp/wayland
export LD_LIBRARY_PATH=$WLD/lib
export PKG_CONFIG_PATH="$WLD/lib/pkgconfig/:$WLD/share/pkgconfig/"
export ACLOCAL_PATH="$WLD/share/aclocal"
export ACLOCAL="aclocal -I $ACLOCAL_PATH"

export CC="$TOOLS_DIR/${TOOLS_PREFIX}gcc"

cd $TMPDIR/wayland

# expat
wget -nc http://downloads.sourceforge.net/project/expat/expat/2.1.0/expat-2.1.0.tar.gz
tar xzf expat-2.1.0.tar.gz
cd expat-2.1.0
./configure --prefix=$WLD
make && make install
cd ..

# libffi
wget -nc ftp://sourceware.org/pub/libffi/libffi-3.0.13.tar.gz
tar xzf libffi-3.0.13.tar.gz
cd libffi-3.0.13
./configure --prefix=$WLD
make && make install
cd ..

# wayland
git clone git://anongit.freedesktop.org/wayland/wayland
cd wayland
./autogen.sh --prefix=$WLD --disable-documentation
make && make install
cd ..
Не совсем понимаю, что я делаю правильно, а что неправильно. И ещё:
$ PKG_CONFIG_PATH="$WLD/lib/pkgconfig" pkg-config --libs libffi
-L/home/golovin/tmp/wayland/lib -lffi
Я правильно понимаю, что pkg-config должен дать правильные CFLAGS, но не даёт? Объясните мне, почему я дурак.

★★★★★

Последнее исправление: CYB3R (всего исправлений: 1)

Он должен дать такие LDFLAGS, чтобы в "-Lwhatever" whatever был папкой, где есть libffi.a или типа того.

arturpub ★★
()
Ответ на: комментарий от arturpub

Ну, во-первых, каталогом, а не папкой. Во-вторых, это всё и так работает.
И да, я перепутал LDFLAGS и CFLAGS, был сонный.

CYB3R ★★★★★
() автор топика

С утра легко нашёл, где же я лажанул. Этот libffi устанавливается в lib64, которого у меня не было в LD_LIBRARY_PATH. А pkg-config тут вообще ни при чём.

CYB3R ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.