Yocto bitbake против sysroot конфликта SDK

У меня проблема с созданием рецепта с использованием bitbake, который зависит от i2c-tools. Похоже, это связано с отсутствием файлов в системном корне моего рецепта. В одном из моих файлов .cpp у меня есть

extern "C" {
    #include <sys/ioctl.h>
    #include <linux/i2c-dev.h>
    #include <i2c/smbus.h>
    #include <unistd.h>
    #include <fcntl.h>
    #include <string.h>
}

Я собрал и установил Yocto image SDK по адресу /opt/fslc-x11/2.6.2. Я могу успешно скомпилировать приложение CMake с помощью следующих команд:

mkdir build && cd build
source /opt/fslc-x11/2.6.2/environment-setup-armv7at2hf-neon-fslc-linux-gnueabi
export QT_SELECT=qt5.11.3
cmake .. -DCMAKE_TOOLCHAIN_FILE=/opt/fslc-x11/2.6.2/sysroots/x86_64-fslcsdk-linux/usr/share/cmake/OEToolchainConfig.cmake -DOE_QMAKE_PATH_EXTERNAL_HOST_BINS=${QT_BIN_PATH}
make -j4

Однако при попытке создать тот же код в моем рецепте битбейка сборка завершается неудачно, заявляя, что

fatal error: i2c/smbus.h: No such file or directory

Я занимаюсь разработкой этого программного обеспечения довольно давно, и рецепт bitbake работал нормально, пока я не добавил материал i2c.

В каталоге SDK заголовок и libi2c существуют, как определено следующими командами поиска:

/opt/fslc-x11/2.6.2$ sudo find . -name smbus.h
./sysroots/armv7at2hf-neon-fslc-linux-gnueabi/usr/src/debug/i2c-tools/4.1-r0/i2c-tools-4.1/include/i2c/smbus.h
./sysroots/armv7at2hf-neon-fslc-linux-gnueabi/usr/include/i2c/smbus.h

а также

/opt/fslc-x11/2.6.2$ sudo find . -name libi2c*
./sysroots/armv7at2hf-neon-fslc-linux-gnueabi/usr/lib/.debug/libi2c.so.0.1.1
./sysroots/armv7at2hf-neon-fslc-linux-gnueabi/usr/lib/libi2c.so.0
./sysroots/armv7at2hf-neon-fslc-linux-gnueabi/usr/lib/libi2c.so.0.1.1
./sysroots/armv7at2hf-neon-fslc-linux-gnueabi/usr/lib/libi2c.so

Однако в рецепте sysroot эти файлы отсутствуют:

~/var-fslc-yocto/build_x11/tmp/work/armv7at2hf-neon-fslc-linux-gnueabi/magi/1.0-r0$ sudo find . -name libi2c*
~/var-fslc-yocto/build_x11/tmp/work/armv7at2hf-neon-fslc-linux-gnueabi/magi/1.0-r0$ sudo find . -name smbus.h

Нужно ли мне что-то добавить в файл .conf или .bb моего рецепта, чтобы эти файлы были в системном корне моего рецепта? Я новичок в Yocto / OE, поэтому, пожалуйста, не торопитесь.


person mattmunee    schedule 17.11.2019    source источник
comment
Пожалуйста, включите содержание рецепта в свой вопрос   -  person Jussi Kukkonen    schedule 17.11.2019
comment
Думаю, я ответил на свой вопрос. Отправка ответа ниже ...   -  person mattmunee    schedule 17.11.2019


Ответы (1)