GStreamer 1.14.4 使用 Buildroot 构建错误

问题描述 投票:0回答:2

我在构建 GStreamer 1.14.4 时遇到以下错误:

/build/gstreamer1-1.14.4/libs/gst/controller »
  CC       libgstcontroller_1.0_la-controller-enumtypes.lo
controller-enumtypes.c:6:1: error: « \ » stray in program
 \#include "gstinterpolationcontrolsource.h"
 ^
controller-enumtypes.c:6:2: error: « # » stray in program
 \#include "gstinterpolationcontrolsource.h"
  ^
controller-enumtypes.c:6:11: error: expected « = », « , », « ; », « asm » or « __attribute__ » before string constant
 \#include "gstinterpolationcontrolsource.h"
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
controller-enumtypes.c:7:1: error: « \ » stray in program
 \#include "gstlfocontrolsource.h"
 ^
controller-enumtypes.c:7:2: error: « # » stray in program
 \#include "gstlfocontrolsource.h"

...

我正在 Debian 11 (Bullseye) (Bullseye) (GNU Make 4.3, GCC (Debian 10.2.1-6) 10.2.1 20210110) 上为 Raspberry Pi 3 model B+ 进行编译,交叉编译器是 arm-buildroot-linux -gnueabihf-gcc-7.4.0。在此之前,在 Linux Mint 18.2 (Sonya) 上编译没问题。

它似乎与生成的代码有关:

/* controller-enumtypes.c */
/* This file is generated by glib-mkenums, do not modify it. This code is licensed under the same license as the containing project. Note that it links to GLib, so must comply with the LGPL linking clauses. */

#include "controller-enumtypes.h"

\#include "gstinterpolationcontrolsource.h"
\#include "gstlfocontrolsource.h"

...

\#include "gstinterpolationcontrolsource.h"
行中,有一个额外的
"\"
,这是无效语法。

如何使用 Buildroot 2019.02.9 正确修复此软件包?

gstreamer embedded-linux raspberry-pi3 buildroot
2个回答
2
投票

根据 https://bugs.gentoo.org/705974,发生这种情况是由于在新机器上使用了 make 4.3。 make 4.3 于 2020 年 1 月发布,因此它不是我们可以在 Buildroot 2019.02 发布时测试的 make 版本。

在上面的 Gentoo 错误报告中,您可以找到解决该问题的补丁。但是,请记住,Buildroot 2019.02.x 不再维护:我们在一年内维护长期支持版本。


0
投票

我在 Buildroot 内的 Gstreamer 1.14.4 发行版上遇到此问题(用于交叉编译到 ARM 32 位嵌入式设备),该问题不仅发生在控制器包内部,而且至少发生在 gst1-plugins-base 上(它可能会发生 -good、-bad 和 -ugly,谁知道还有哪些 - 一旦我设法调整 forgst1-plugins-base 上面发送的链接中的补丁并使其工作,我就会知道)。如果我设法修复编译过程,我将在这里分享补丁。顺便说一句,提供的补丁在 Buildroot 中就像一个魅力,只需相应地重新编号文件名,将其放入 package/gstreamer1/gstreamer1 并运行 make...控制器模块现在可以完美编译...现在只需要适应其他模块发生完全相同类型的问题(\#include)的地方......

© www.soinside.com 2019 - 2024. All rights reserved.