Рецепт ржавчины зависит от библиотеки из другого рецепта

Я пытаюсь создать пакет из рецепта Bitbake для Raspberry Pi:

inherit cargo

SUMMARY = "myapp"
DESCRIPTION = "Compile and configure myapp"
LICENSE = "CLOSED"
HOMEPAGE = "git://git.myserver.com:myapp/myapp.git"

DEPENDS = "openssl postgresql"

SRC_URI = "git://git.myserver.com/myapp/myapp.git;protocol=https;user=myuser:mypass;tag=v${PV}"
SRC_URI[sha256sum] = "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"

S = "${WORKDIR}/git"

Программа, которую я компилирую, зависит от библиотеки PostgreSQL libpq, которая создается пакетом postgresql. Моя проблема в том, что компоновщик не может найти libpq, даже если он находится в DEPENDS.

Ошибка вывода:

...
"-Wl,--end-group" "/home/yocto-image/build/tmp/work/cortexa7t2hf-neon-vfpv4-poky-linux-gnueabi/myapp/0.0.1-r0/recipe-sysroot-native/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-e2523c360f03ba10.rlib" "-Wl,-Bdynamic" "-lpq" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc"
|   = note: /home/yocto-image/build/tmp/hosttools/ld: cannot find -lpq
|           collect2: error: ld returned 1 exit status
| 
| 
| error: aborting due to previous error
| 
...

person esguti    schedule 07.04.2021    source источник


Ответы (1)


Наконец нашел решение. Я кросс-компилировал код на ПК с Ubuntu x86_64. Библиотека была необходима для компилятора, а не для целевой машины (Raspberry Pi). Решение состоит в том, чтобы просто установить библиотеки, необходимые в Ubuntu:

sudo apt-get install libpq-dev
person esguti    schedule 08.04.2021