Loading [MathJax]/jax/output/CommonHTML/config.js
社区首页 >问答首页 >无法编译基于GstPlugin生成的样板

无法编译基于GstPlugin生成的样板
EN

Stack Overflow用户
提问于 2020-03-25 23:19:13
回答 3查看 302关注 0票数 0

在为我的示例插件构建样板时,我遵循了Gst插件开发基础中可用的说明,在本例中是HelloWorld。

我通过在克隆的回购中调用make_element工具创建了示例插件

代码语言:javascript
代码运行次数:0
复制
../tools/make_element HelloWorld

之后,我修改了gst-plugin目录中的meson.build,以包含生成的源文件,即gsthelloworld.h和gsthelloworld.c。

代码语言:javascript
代码运行次数:0
复制
helloworld_sources = [
  'src/gsthelloworld.c'
  ]

gsthelloworld = library('gsthelloworld',
  helloworld_sources,
  c_args: plugin_c_args,
  dependencies : [gst_dep],
  install : true,
  install_dir : plugins_install_dir,
)

我在执行meson build && ninja -C build后遇到了错误

代码语言:javascript
代码运行次数:0
复制
gst-template/build/../gst-plugin/src/gsthelloworld.c:184: undefined reference to `GST_HELLOWORLD'

**there are multiple lines of the same errors happen at different part of the source file.

我似乎在两个生成的源文件中都找不到GST_HELLOWORLD的声明。

查看Gst插件开发基础中的教程,我发现有一个宏声明遵循类似的命名约定,我的是HelloWorld,而提供的示例是MyFilter

代码语言:javascript
代码运行次数:0
复制
#define GST_MY_FILTER(obj) \
  (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_MY_FILTER,GstMyFilter))

但是,我在生成的源文件中没有看到任何宏。因此,我猜它可能是作为gstplugin.c和gstplugin.h提供的模板编写的,与生成的源文件非常相似,如果我从构建文件中删除我的示例插件,就可以成功地编译它。

因此,我是否错过了与汇编相关的任何步骤?谢谢。

编辑:我是用Ubuntu18.04(GStreer1.14.5)在PC上这样做的。

EN

回答 3

Stack Overflow用户

发布于 2021-03-11 04:10:22

在……里面

代码语言:javascript
代码运行次数:0
复制
    #define GST_TYPE_HELLOWORLD (gst_my_filter_get_type())
G_DECLARE_FINAL_TYPE (GstHelloWorld, gst_hello_world,
    GST, PLUGIN_TEMPLATE, GstElement)

PLUGIN_TEMPLATE替换为HELLOWORLD

票数 2
EN

Stack Overflow用户

发布于 2020-11-14 10:52:50

我将其与一个工作插件进行了比较,对gsthelloworld.h的这一修改适用于我:

代码语言:javascript
代码运行次数:0
复制
#define GST_TYPE_HELLOWORLD (gst_my_filter_get_type())
G_DECLARE_FINAL_TYPE (GstHelloWorld, gst_hello_world,
    GST, PLUGIN_TEMPLATE, GstElement)

// You need to add this one below in your gsthelloworld.h
#define GST_HELLOWORLD(obj) \
  (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_HELLOWORLD,GstHelloWorld))
票数 1
EN

Stack Overflow用户

发布于 2022-11-22 14:30:23

为我工作的是:

代码语言:javascript
代码运行次数:0
复制
#ifndef __GST_MYFILTER_H__
#define __GST_MYFILTER_H__
#include <gst/gst.h>
G_BEGIN_DECLS

/* #defines don't like whitespacey bits */
#define GST_TYPE_MYFILTER \
  (gst_my_filter_get_type())
#define GST_MYFILTER(obj) \
  (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_MYFILTER,GstMyFilter))
#define GST_MYFILTER_CLASS(klass) \
  (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_MYFILTER,GstMyFilterClass))
#define GST_IS_MYFILTER(obj) \
  (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_MYFILTER))
#define GST_IS_MYFILTER_CLASS(klass) \
  (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_MYFILTER))

typedef struct _GstMyFilter      GstMyFilter;
typedef struct _GstMyFilterClass GstMyFilterClass;

struct _GstMyFilter
{
  GstElement element;

  GstPad *sinkpad, *srcpad;

  gboolean silent;
};

struct _GstMyFilterClass 
{
  GstElementClass parent_class;
};

GType gst_my_filter_get_type (void);

G_END_DECLS

#endif /* __GST_MYFILTER_H__ */

这些也是构建命令:

  • 介子-重新配置构建
  • 忍者-C构建
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60862505

复制
相关文章
MyEclipse无法编译,不生成class文件
还有一种原因是工程中的jdk没有导入正确;在工程中选中jre system Library 右键build path configure build path 把jre移除 然后点击 add library 选中 jre sysrem library 将本地的jdk路径找到 确定就ok了
西门呀在吹雪
2020/11/09
1.5K0
编译ffmpeg无法生成ffplay的问题解决
好多人问编译ffmpeg时无法生成ffplay,其具体原因多数是由于没有SDL或者SDL版本不正确所导致。
用户3765803
2019/03/05
2.4K0
「.vue文件的编译」5. 模板编译之基于AST的代码生成
with中的this是vue实例,_u等等都是挂载在该Vue原型上的,_c是直接挂载vm实例上的。
tinyant
2023/02/24
4810
基于 Alpine 的 Docker 镜像编译的程序无法在云函数环境运行
最近有一个用户反馈, 他使用 golang:1.13.1-alpine3.10 这个镜像来编译的可执行程序无法在云函数的环境运行, 报错信息如下:
ritchiechen
2019/11/10
5.8K0
基于 Alpine 的 Docker 镜像编译的程序无法在云函数环境运行
一个基于Laravel的全功能单页应用样板
Laravel Enso是一个基于Laravel的全功能单页应用样板,为复杂应用提供健壮的样板工具,具有优越的性能。Laravel Enso是基于Laravel、 Vue、 Bulma开发, 由几十个模块组成,易于扩展和自定义。
老鱼的日常
2023/09/09
1840
一个基于Laravel的全功能单页应用样板
基于模型设计的永磁同步电机控制编译和代码生成
之前推送过,基于模型设计的准备工作,后台有人问怎么设置模型编译和代码生成,本篇笔记主要记录基于NXP恩智浦MPC5744P的MBD工具箱,一步步编译PMSM电机模型和代码生成。
用户1605515
2021/10/12
6860
基于.net core实现项目自动编译、并生成nuget包
      近期想对自己的项目增加自动编译并生成nuget包,网上资料不少。但总还有迷糊的时候。首先:此解决方案包含多种版本的项目,如:有编译必须是x86平台,以及还有传统的.net foramework项目,以及多版本的.net core项目等。找到通用的解决方案还是用了不少的时间。本文章就对此做下自我总结。望对同仁有所帮助。 一、遇到的问题,以及解决办法 1.1 不同平台的编译怎么办       .net可以将dll(或者说是项目)编译成x86、x64、anycpu 等至少三种平台代码。但如果用dotn
sam dragon
2018/05/28
1.6K0
解决 maven 项目无法编译的问题
经过各种资料和分析后,是因为依赖的 jar 包有下载不完整导致的。解决办法是,把这些本地 maven 仓库中下载有问题的 jar 包删除,重新打包项目即可(idea 中就是 reload)。
FHAdmin
2022/05/19
1.5K0
Apache编译后无法正常工作
因为某个场景的需求,要在一个国产系统Rocky4.2(国产凝思4.2操作系统)上安装Apache,虽说此系统是基于Redhat 5.8开发的,但是发现yum安装源包管理,RPM命令倒是能用,但是底层依赖完全没有,这就尴尬了,so,只能源码编译安装了。
后场技术
2020/09/03
2.8K0
kubernetes工作记录(2)——基于release工程的kubernetes1.7.3 rpm包的编译生成
基于release工程的kubernetes1.7.3 rpm包的编译生成
胡了了
2017/12/28
8080
kubernetes工作记录(2)——基于release工程的kubernetes1.7.3 rpm包的编译生成
基于Android平台的ffmpeg编译
    前面介绍了Android jni 相关知识,但jni最终还是要调用的第三方的C/C++库,这里我们以ffmpeg为例,介绍第三方C/C++如何编译成android 版本。
用户4148957
2022/06/14
7090
基于Android平台的ffmpeg编译
「.vue文件的编译」3. 模板编译之AST生成
下面parseHTML方法是用来遍历html字符串的并解析出标签(当然包含标签中的属性)、文本等信息,详细分析参考这里。
tinyant
2023/02/24
1.2K0
maven:java8下当javadoc有编译错误时无法生成.jar包的问题
版权声明:本文为博主原创文章,转载请注明源地址。 https://blog.csdn.net/10km/article/details/86429770
10km
2019/05/25
1.6K0
PyGame Zero:没有样板的游戏 【Gaming】
Python是一种很好的初学者编程语言。游戏是一个很好的初学者学习的项目:它们是视觉的,自我激励的,向朋友和家人炫耀时是有趣的。然而,用Python编写游戏的最常见的库---PyGame可能会让初学者感到沮丧,因为忘记看似很小的细节很容易导致无法渲染页面。
五月Rambo
2019/11/11
1.7K0
PyGame Zero:没有样板的游戏 【Gaming】
基于VLAN 的生成树
目录 学习目标: 学习内容: 学习时间: 具体实现: ---- 学习目标: 划分基于VLAN 的生成树 ---- 学习内容: 指定交换机的生成树为 PVST(基于VLAN的生成树协议) 指定交换机的生成树为 PVST(基于VLAN的生成树协议),收敛速度快。 将该交换机的生成树优先级指定为最优先 将该交换机直接指定为生成树的根桥 ---- 学习时间: 2022.3.29 ---- 具体实现: 一、 (一)目标拓扑图  (二)构思 1、配置终端ip 子网掩码 2、交换机划分VLAN 3、指定交换机的生成树
MIKE笔记
2023/03/22
4410
基于VLAN 的生成树
基于protobuf的代码生成
前段时间我用 Python 和 Mako 模板引擎重新梳理了我们项目中的一些重复的流程。重构了所有的RPC系统。这个工作其实完成了挺久了,但是迫于懒一直拖着没写完这篇记录,就一直没发。
owent
2021/02/24
1.6K0
基于protobuf的代码生成
基于protobuf的代码生成
前段时间我用 Python 和 Mako 模板引擎重新梳理了我们项目中的一些重复的流程。重构了所有的RPC系统。这个工作其实完成了挺久了,但是迫于懒一直拖着没写完这篇记录,就一直没发。
owent
2023/03/17
9190
基于protobuf的代码生成
[Article] CMake编译生成so库
第一步 设置CMakeLists.txt位置 // android {} 里增加 externalNativeBuild { cmake { path "src/main/cpp/CMakeLists.txt" } } 第二步 设置CMakeLists.txt配置 cmake_minimum_required(VERSION 3.4.1) // a.cpp、b.cpp 编译成 MyLib.so 库 add_library(MyLib SHARED a.cpp b.cpp)
用户3702315
2021/03/02
2.4K0
P - 简单的代码生成程序【编译原理】
通过三地址代码序列生成计算机的目标代码,在生成算法中,对寄存器的使用顺序为:寄存器中存有 > 空寄存器 > 内存中存有 > 以后不再使用 > 最远距离使用
Lokinli
2023/03/09
4090
Intellij IDEA 中无法编译lombok的解决方法
新装了Intellij IDEA,导入项目之后,引入各种库之后,却一直报错,锁定错误,发现提示Bean中的属性没有getter和setter方法。这个是使用lombok的,lombok的jar包也已经引入。可是还是报错,后来查了一些原因,原来还需要安装plugins。步骤如下:
用户8704835
2021/06/08
1.9K0

相似问题

MonoTouch样板代码生成

21

无法编译生成

10

ng-样板字码编译

110

生成的文件无法编译

24

编译reactjs样板后的奇怪问题

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 腾讯技术创作特训营