我无法将 flatc 安装到基于 yocto 的 SDK 中
I can't get flatc installed into my yocto based SDK
我正在执行 bitbake image -c populate_sdk 来获取我的 SDK,但我找不到获取 SDK 中包含的 flatc 二进制文件的方法。
我已经在我的 flatbuffers.bb 文件中尝试了一个 do_install_append 并且我已经将对各种 flatbuffers 的依赖项放在另一个 .bb 文件中。我已经在我的机器 .conf 文件中添加了 TOOLCHAIN_HOST_TASK_append。
我确实在 SDK 中获得了 flatbuffers 头文件,但只有 ARM flatc 而不是本机的。
这是我在 .bb 文件中为我们拥有的自定义二进制文件添加的依赖项:
DEPENDS += "yaml-cpp libevent protobuf python3 nativesdk-flatbuffers flatbuffers-native flatbuffers"
DEPENDS_append_class-nativesdk = " flatbuffers"
这是我的 flatbuffers .bb 文件
SUMMARY = "Memory Efficient Serialization Library"
HOMEPAGE = "https://github.com/google/flatbuffers"
SECTION = "console/tools"
LICENSE = "Apache-2.0"
PACKAGE_BEFORE_PN = "${PN}-compiler"
RDEPENDS_${PN}-compiler = "${PN}"
RDEPENDS_${PN}-dev += "${PN}-compiler"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=a873c5645c184d51e0f9b34e1d7cf559"
SRCREV = "c0698cc33f1e534bb59c455909b88cc2726089af"
SRC_URI = "git://github.com/google/flatbuffers.git"
# Make sure C++11 is used, required for example for GCC 4.9
CXXFLAGS += "-std=c++11"
BUILD_CXXFLAGS += "-std=c++11"
# BUILD_TYPE=Release is required, otherwise flatc is not installed
EXTRA_OECMAKE += "\
-DCMAKE_BUILD_TYPE=Release \
-DFLATBUFFERS_BUILD_TESTS=OFF \
-DFLATBUFFERS_BUILD_SHAREDLIB=ON \
"
# -DFLATBUFFERS_BUILD_FLATC=ON
#do_install_append() {
# install -d ${$D}/${bindir}
# install ${B}/flatc ${D}${bindir}
#}
inherit cmake
S = "${WORKDIR}/git"
FILES_${PN}-compiler = "${bindir}"
FILES_${PN} += "/usr/lib/*"
FILES_${PN} += "/opt/ousteros/2019.7/sysroots/*"
#FILES_${PN} += "${WORKDIR}/${SDK_ARCH}/usr/bin/flatc"
BBCLASSEXTEND = "native nativesdk"
我得到了 ARM flatc 但没有 x86_64 flatc,我需要它来构建我的其他二进制文件需要的头文件。我的其他二进制文件还不需要那个头文件,我首先想生成一个带有 flatc 的 SDK。
不要在 DEPENDS
中混用 target 和 nativesdk 包。
要将本机工具添加到 SDK,您需要在创建 SDK 的 图像配方 中将 nativesdk-flatbuffers-compiler
添加到 TOOLCHAIN_HOST_TASK
。
我正在执行 bitbake image -c populate_sdk 来获取我的 SDK,但我找不到获取 SDK 中包含的 flatc 二进制文件的方法。
我已经在我的 flatbuffers.bb 文件中尝试了一个 do_install_append 并且我已经将对各种 flatbuffers 的依赖项放在另一个 .bb 文件中。我已经在我的机器 .conf 文件中添加了 TOOLCHAIN_HOST_TASK_append。
我确实在 SDK 中获得了 flatbuffers 头文件,但只有 ARM flatc 而不是本机的。
这是我在 .bb 文件中为我们拥有的自定义二进制文件添加的依赖项:
DEPENDS += "yaml-cpp libevent protobuf python3 nativesdk-flatbuffers flatbuffers-native flatbuffers"
DEPENDS_append_class-nativesdk = " flatbuffers"
这是我的 flatbuffers .bb 文件
SUMMARY = "Memory Efficient Serialization Library"
HOMEPAGE = "https://github.com/google/flatbuffers"
SECTION = "console/tools"
LICENSE = "Apache-2.0"
PACKAGE_BEFORE_PN = "${PN}-compiler"
RDEPENDS_${PN}-compiler = "${PN}"
RDEPENDS_${PN}-dev += "${PN}-compiler"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=a873c5645c184d51e0f9b34e1d7cf559"
SRCREV = "c0698cc33f1e534bb59c455909b88cc2726089af"
SRC_URI = "git://github.com/google/flatbuffers.git"
# Make sure C++11 is used, required for example for GCC 4.9
CXXFLAGS += "-std=c++11"
BUILD_CXXFLAGS += "-std=c++11"
# BUILD_TYPE=Release is required, otherwise flatc is not installed
EXTRA_OECMAKE += "\
-DCMAKE_BUILD_TYPE=Release \
-DFLATBUFFERS_BUILD_TESTS=OFF \
-DFLATBUFFERS_BUILD_SHAREDLIB=ON \
"
# -DFLATBUFFERS_BUILD_FLATC=ON
#do_install_append() {
# install -d ${$D}/${bindir}
# install ${B}/flatc ${D}${bindir}
#}
inherit cmake
S = "${WORKDIR}/git"
FILES_${PN}-compiler = "${bindir}"
FILES_${PN} += "/usr/lib/*"
FILES_${PN} += "/opt/ousteros/2019.7/sysroots/*"
#FILES_${PN} += "${WORKDIR}/${SDK_ARCH}/usr/bin/flatc"
BBCLASSEXTEND = "native nativesdk"
我得到了 ARM flatc 但没有 x86_64 flatc,我需要它来构建我的其他二进制文件需要的头文件。我的其他二进制文件还不需要那个头文件,我首先想生成一个带有 flatc 的 SDK。
不要在 DEPENDS
中混用 target 和 nativesdk 包。
要将本机工具添加到 SDK,您需要在创建 SDK 的 图像配方 中将 nativesdk-flatbuffers-compiler
添加到 TOOLCHAIN_HOST_TASK
。