zoukankan      html  css  js  c++  java
  • python2-gst0.10制作静态包的补丁 v1.1

    gst制作成了静态库,而python2的gst有多个动态库引用gst的库

    因此,想了一个办法将python2所需要的gst打包成一个单独的共享库

    办法就是,将python2_gst所有的.so先制作成.a

    通过nm -g加过滤的办法得到所有链接的gst函数

    将这些函数生成一个小文件,在一个静态函数中引用所有这些函数

    然后,将这个小文件编译成so文件,并链接gst库,这样,python2_gst所需要的gst函数就全部链接进来了

    同时,可以将gst动态插件的方式也在启动时就注册进来,那样,python2_gst得到的包就是自包含的了

    新增加了安装gst_pack动态库的代码

    diff -Nur gst-python-0.10.22/codegen/gen_gst_import_code.py gst-python-0.10.22_test/codegen/gen_gst_import_code.py
    --- gst-python-0.10.22/codegen/gen_gst_import_code.py	1970-01-01 08:00:00.000000000 +0800
    +++ gst-python-0.10.22_test/codegen/gen_gst_import_code.py	2015-01-20 05:12:45.107817971 +0800
    @@ -0,0 +1,33 @@
    +import os,sys,random
    +
    +def main(argv):
    +    if len(argv) < 3:
    +        print "need more params."
    +        return -1
    +
    +    src_file = argv[1]
    +    dest_file = argv[2]
    +    try:
    +        s_handle = open(src_file, "r")
    +        s_buff = s_handle.readlines()
    +        s_handle.close()
    +    except Exception, detail:
    +        print "Exception: {0}".format(detail)
    +        return -1
    +    try:
    +        d_handle = open(dest_file, "w")
    +        for line in s_buff:
    +            d_handle.write("extern void %s ();
    " % line[:-1])
    +        d_handle.write("
    void __gst_import_%s ()
    {
    " % random.randint(0,10000) )
    +        #d_handle.write("
    static void __gst_import_functions ()
    {
    ")
    +        for line in s_buff:
    +            d_handle.write("    %s ();
    " % line[:-1])
    +        d_handle.write("}
    
    ")
    +        d_handle.close()
    +    except Exception, detail:
    +        print "Exception: {0}".format(detail)
    +        return -1
    +    return 0
    +     
    +if __name__ == '__main__':
    +    sys.exit(main(sys.argv))
    diff -Nur gst-python-0.10.22/codegen/gen_imp_code.sh gst-python-0.10.22_test/codegen/gen_imp_code.sh
    --- gst-python-0.10.22/codegen/gen_imp_code.sh	1970-01-01 08:00:00.000000000 +0800
    +++ gst-python-0.10.22_test/codegen/gen_imp_code.sh	2015-01-19 03:03:07.211836824 +0800
    @@ -0,0 +1,4 @@
    +#!/bin/sh
    +
    +nm -g $1 | grep " U " | awk "{ print $2}" | grep "^gst_"
    +
    diff -Nur gst-python-0.10.22/gst/gst_static_plugin_reg.c gst-python-0.10.22_test/gst/gst_static_plugin_reg.c
    --- gst-python-0.10.22/gst/gst_static_plugin_reg.c	1970-01-01 08:00:00.000000000 +0800
    +++ gst-python-0.10.22_test/gst/gst_static_plugin_reg.c	2015-01-18 23:20:09.490976826 +0800
    @@ -0,0 +1,4 @@
    +
    +void init_register_static_gst_plugin()
    +{
    +}
    diff -Nur gst-python-0.10.22/gst/Makefile.am gst-python-0.10.22_test/gst/Makefile.am
    --- gst-python-0.10.22/gst/Makefile.am	2011-10-20 20:31:28.000000000 +0800
    +++ gst-python-0.10.22_test/gst/Makefile.am	2015-01-21 06:17:45.551271251 +0800
    @@ -53,9 +53,9 @@
     
     # GStreamer bindings
     _gst_la_CFLAGS = $(common_cflags)
    -_gst_la_LIBADD = $(common_libadd) $(GST_BASE_LIBS)
    +_gst_la_LIBADD = $(common_libadd)
     _gst_la_LDFLAGS = $(common_ldflags) -export-symbols-regex "^(init_gst|_PyGObject_API|pygstminiobject_).*" 
    -	$(GST_BASE_LIBS) $(GST_CONTROLLER_LIBS) $(GST_NET_LIBS) $(GST_DP_LIBS)
    +	-lgst_pack
     _gst_la_SOURCES = 		
     	gst-argtypes.c 		
     	gstmodule.c 		
    @@ -92,7 +92,7 @@
     interfaces_la_CFLAGS = $(common_cflags) $(GST_PLUGINS_BASE_CFLAGS)
     interfaces_la_LIBADD = $(common_libadd) -lgstinterfaces-$(GST_MAJORMINOR) 
     interfaces_la_LDFLAGS = $(common_ldflags) 
    -	-export-symbols-regex "^(initinterface|_PyGObject_API).*" $(GST_PLUGINS_BASE_LIBS)
    +	-export-symbols-regex "^(initinterface|_PyGObject_API).*" -lgst_pack
     interfaces_la_SOURCES = interfacesmodule.c
     nodist_interfaces_la_SOURCES = interfaces.c
     INTERFACES_OVERRIDES = interfaces.override xoverlay.override
    @@ -103,9 +103,9 @@
     
     # GStreamer pbutils bindings
     pbutils_la_CFLAGS = $(common_cflags) $(GST_PLUGINS_BASE_CFLAGS)
    -pbutils_la_LIBADD = $(common_libadd) $(GST_PLUGINS_BASE_LIBS) -lgstpbutils-0.10
    +pbutils_la_LIBADD = $(common_libadd)  -lgst_pack
     pbutils_la_LDFLAGS = $(common_ldflags) 
    -	-export-symbols-regex "^(initpbutils|_PyGObject_API).*" $(GST_PLUGINS_BASE_LIBS)
    +	-export-symbols-regex "^(initpbutils|_PyGObject_API).*" -lgst_pack
     pbutils_la_SOURCES = pbutilsmodule.c gst-argtypes.c
     nodist_pbutils_la_SOURCES = pbutils.c
     PBUTILS_OVERRIDES = pbutils.override
    @@ -129,7 +129,7 @@
      audio_la_CFLAGS = $(common_cflags) $(GST_PLUGINS_BASE_CFLAGS)
      audio_la_LIBADD = $(common_libadd) $(GST_PLUGINS_BASE_LIBS) -lgstaudio-0.10
      audio_la_LDFLAGS = $(common_ldflags) 
    -	-export-symbols-regex "^(initaudio|_PyGObject_API).*" $(GST_PLUGINS_BASE_LIBS)
    +	-export-symbols-regex "^(initaudio|_PyGObject_API).*"  -lgst_pack
      audio_la_SOURCES = audiomodule.c gst-argtypes.c
      nodist_audio_la_SOURCES = audio.c
     audio.c: $(AUDIO_DEFS) $(AUDIO_OVERRIDES) $(GEN_FILES)
    @@ -151,7 +151,7 @@
      video_la_CFLAGS = $(common_cflags) $(GST_PLUGINS_BASE_CFLAGS)
      video_la_LIBADD = $(common_libadd) $(GST_PLUGINS_BASE_LIBS) -lgstvideo-0.10
      video_la_LDFLAGS = $(common_ldflags) 
    -	-export-symbols-regex "^(initvideo|_PyGObject_API).*" $(GST_PLUGINS_BASE_LIBS)
    +	-export-symbols-regex "^(initvideo|_PyGObject_API).*" -lgst_pack
      video_la_SOURCES = videomodule.c gst-argtypes.c
      nodist_video_la_SOURCES = video.c
     video.c: $(VIDEO_DEFS) $(VIDEO_OVERRIDES) $(GEN_FILES)
    @@ -173,13 +173,108 @@
      tag_la_CFLAGS = $(common_cflags) $(GST_PLUGINS_BASE_CFLAGS)
      tag_la_LIBADD = $(common_libadd) $(GST_PLUGINS_BASE_LIBS) -lgsttag-0.10
      tag_la_LDFLAGS = $(common_ldflags) 
    -	-export-symbols-regex "^(inittag|_PyGObject_API).*" $(GST_PLUGINS_BASE_LIBS)
    +	-export-symbols-regex "^(inittag|_PyGObject_API).*" -lgst_pack
      tag_la_SOURCES = tagmodule.c gst-argtypes.c
      nodist_tag_la_SOURCES = tag.c
     tag.c: $(TAG_DEFS) $(TAG_OVERRIDES) $(GEN_FILES)
     
     endif
     
    +gstpackexecdir = /usr/lib
    +gstpackexec_LTLIBRARIES = libgst_pack.la
    +pygstexec_LTLIBRARIES: gstpackexec_LTLIBRARIES
    +
    +libgst_pack_lib = libgst_pack.la
    +libgst_pack_la_SOURCES = gst_static_plugin_reg.c
    +
    +libgst_pack_la_CFLAGS = $(common_cflags) -fPIC
    +libgst_pack_la_LIBADD = $(common_libadd) $(GST_BASE_LIBS)
    +libgst_pack_la_LDFLAGS = -shared -fPIC $(GST_BASE_LIBS) $(GST_CONTROLLER_LIBS) $(GST_NET_LIBS) $(GST_DP_LIBS)
    +nodist_libgst_pack_la_SOURCES = lib_gst_import.c
    +CLEANFILES += lib_gst_import.c
    +noinst_LIBRARIES = lib_gst.a
    +lib_gst_a_CFLAGS = $(_gst_la_CFLAGS)
    +lib_gst_a_SOURCES = $(_gst_la_SOURCES) $(nodist__gst_la_SOURCES)
    +_gst_la_DEPENDENCIES = $(libgst_pack_lib)
    +lib_gst_import.c: lib_gst.a
    +
    +
    +if HAVE_PYGOBJECT_2_16
    +
    +libgst_pack_la_LDFLAGS += $(GST_LIBS) $(GST_OPTION_LIBS)
    +nodist_libgst_pack_la_SOURCES += libgstoption_import.c
    +CLEANFILES += libgstoption_import.c
    +noinst_LIBRARIES += libgstoption.a
    +libgstoption_a_CFLAGS = $(common_cflags)
    +libgstoption_a_SOURCES = ../gstoptionmodule.c
    +libgstoption_import.c: libgstoption.a
    +
    +endif
    +
    +libgst_pack_la_LDFLAGS += $(GST_PLUGINS_BASE_LIBS) -lgstinterfaces-$(GST_MAJORMINOR) 
    +nodist_libgst_pack_la_SOURCES += libinterfaces_import.c
    +CLEANFILES += libinterfaces_import.c
    +noinst_LIBRARIES += libinterfaces.a
    +libinterfaces_a_CFLAGS = $(interfaces_la_CFLAGS)
    +libinterfaces_a_SOURCES = $(interfaces_la_SOURCES) $(nodist_interfaces_la_SOURCES)
    +interfaces_la_DEPENDENCIES = $(libgst_pack_lib)
    +libinterfaces.c_import: libinterfaces.a
    +
    +
    +libgst_pack_la_LDFLAGS +=  -lgstpbutils-0.10
    +nodist_libgst_pack_la_SOURCES += libpbutils_import.c
    +CLEANFILES += libpbutils_import.c
    +noinst_LIBRARIES += libpbutils.a
    +libpbutils_a_CFLAGS = $(pbutils_la_CFLAGS)
    +libpbutils_a_SOURCES = $(pbutils_la_SOURCES) $(nodist_pbutils_la_SOURCES)
    +pbutils_la_DEPENDENCIES = $(libgst_pack_lib)
    +libpbutils_import.c: libpbutils.a
    +
    +
    +if HAVE_GST_AUDIO
    +
    + libgst_pack_la_LDFLAGS +=  -lgstaudio-0.10
    + nodist_libgst_pack_la_SOURCES += libaudio_import.c
    + CLEANFILES += libaudio_import.c
    + noinst_LIBRARIES += libaudio.a
    + libaudio_a_CFLAGS = $(audio_la_CFLAGS)
    + libaudio_a_SOURCES=$(audio_la_SOURCES) $(nodist_audio_la_SOURCES)
    + audio_la_DEPENDENCIES = $(libgst_pack_lib)
    +libaudio_import.c: libaudio.a
    +
    +
    +endif
    +
    +if HAVE_GST_VIDEO
    +
    + libgst_pack_la_LDFLAGS += -lgstvideo-0.10
    + nodist_libgst_pack_la_SOURCES += libvideo_import.c
    + CLEANFILES += libvideo_import.c
    + noinst_LIBRARIES += libvideo.a
    + libvideo_a_CFLAGS = $(video_la_CFLAGS)
    + libvideo_a_SOURCES=$(video_la_SOURCES) $(nodist_video_la_SOURCES)
    + video_la_DEPENDENCIES = $(libgst_pack_lib)
    +libvideo_import.c: libvideo.a
    +
    +
    +endif
    +
    +if HAVE_GST_TAG
    +
    + libgst_pack_la_LDFLAGS += -lgsttag-0.10
    + nodist_libgst_pack_la_SOURCES += libtag_import.c
    + CLEANFILES += libtag_import.c
    + noinst_LIBRARIES += libtag.a
    + libtag_a_CFLAGS = $(tag_la_CFLAGS)
    + libtag_a_SOURCES = $(tag_la_SOURCES) $(nodist_tag_la_SOURCES)
    + tag_la_DEPENDENCIES = $(libgst_pack_lib)
    +libtag_import.c: libtag.a
    +
    +endif
    +
    +%_import.c: %.a
    +	/bin/sh $(top_srcdir)/codegen/gen_imp_code.sh $< > $<.imp		
    +	&& $(PYTHON) $(top_srcdir)/codegen/gen_gst_import_code.py $<.imp $@  && rm -f $<.imp
     
     .defs.c: 
     	$(AM_V_GEN)($(PYTHON) $(top_srcdir)/codegen/codegen.py 
    diff -Nur gst-python-0.10.22/gst/Makefile_static.am gst-python-0.10.22_test/gst/Makefile_static.am
    --- gst-python-0.10.22/gst/Makefile_static.am	1970-01-01 08:00:00.000000000 +0800
    +++ gst-python-0.10.22_test/gst/Makefile_static.am	2015-01-19 04:20:32.000000000 +0800
    @@ -0,0 +1,92 @@
    +
    +libgst_pack_lib = libgst_pack.la
    +pygstexec_LTLIBRARIES += $(libgst_pack_lib)
    +libgst_pack_la_SOURCES = gst_static_plugin_reg.c
    +
    +libgst_pack_la_CFLAGS = $(common_cflags) -fPIC
    +libgst_pack_la_LIBADD = $(common_libadd) $(GST_BASE_LIBS)
    +libgst_pack_la_LDFLAGS = -shared -fPIC $(GST_BASE_LIBS) $(GST_CONTROLLER_LIBS) $(GST_NET_LIBS) $(GST_DP_LIBS)
    +nodist_libgst_pack_la_SOURCES = lib_gst.c
    +CLEANFILES += lib_gst.c
    +noinst_LIBRARIES = lib_gst.a
    +lib_gst_a_CFLAGS = $(_gst_la_CFLAGS)
    +lib_gst_a_SOURCES = $(_gst_la_SOURCES) $(nodist__gst_la_SOURCES)
    +_gst_la_DEPENDENCIES = $(libgst_pack_lib)
    +lib_gst.c: lib_gst.a
    +
    +
    +if HAVE_PYGOBJECT_2_16
    +libgst_pack_la_LDFLAGS += $(GST_LIBS) $(GST_OPTION_LIBS)
    +nodist_libgst_pack_la_SOURCES += libgstoption.c
    +CLEANFILES += libgstoption.c
    +noinst_LIBRARIES += libgstoption.a
    +libgstoption_a_CFLAGS = $(common_cflags)
    +libgstoption_a_SOURCES = ../gstoptionmodule.c
    +libgstoption.c: libgstoption.a
    +
    +
    +endif
    +
    +libgst_pack_la_LDFLAGS += $(GST_PLUGINS_BASE_LIBS) -lgstinterfaces-$(GST_MAJORMINOR) 
    +nodist_libgst_pack_la_SOURCES += libinterfaces.c
    +CLEANFILES += libinterfaces.c
    +noinst_LIBRARIES += libinterfaces.a
    +libinterfaces_a_CFLAGS = $(interfaces_la_CFLAGS)
    +libinterfaces_a_SOURCES = $(interfaces_la_SOURCES) $(nodist_interfaces_la_SOURCES)
    +interfaces_la_DEPENDENCIES = $(libgst_pack_lib)
    +libinterfaces.c: libinterfaces.a
    +
    +
    +libgst_pack_la_LDFLAGS +=  -lgstpbutils-0.10
    +nodist_libgst_pack_la_SOURCES += libpbutils.c
    +CLEANFILES += libpbutils.c
    +noinst_LIBRARIES += libpbutils.a
    +libpbutils_a_CFLAGS = $(pbutils_la_CFLAGS)
    +libpbutils_a_SOURCES = $(pbutils_la_SOURCES) $(nodist_pbutils_la_SOURCES)
    +pbutils_la_DEPENDENCIES = $(libgst_pack_lib)
    +libpbutils.c: libpbutils.a
    +
    +
    +if HAVE_GST_AUDIO
    + libgst_pack_la_LDFLAGS +=  -lgstaudio-0.10
    + nodist_libgst_pack_la_SOURCES += libaudio.c
    + CLEANFILES += libaudio.c
    + noinst_LIBRARIES += libaudio.a
    + libaudio_a_CFLAGS = $(audio_la_CFLAGS)
    + libaudio_a_SOURCES=$(audio_la_SOURCES) $(nodist_audio_la_SOURCES)
    + audio_la_DEPENDENCIES = $(libgst_pack_lib)
    +libaudio.c: libaudio.a
    +
    +
    +endif
    +
    +if HAVE_GST_VIDEO
    + libgst_pack_la_LDFLAGS += -lgstvideo-0.10
    + nodist_libgst_pack_la_SOURCES += libvideo.c
    + CLEANFILES += libvideo.c
    + noinst_LIBRARIES += libvideo.a
    + libvideo_a_CFLAGS = $(video_la_CFLAGS)
    + libvideo_a_SOURCES=$(video_la_SOURCES) $(nodist_video_la_SOURCES)
    + video_la_DEPENDENCIES = $(libgst_pack_lib)
    +libvideo.c: libvideo.a
    +
    +
    +endif
    +
    +if HAVE_GST_TAG
    + libgst_pack_la_LDFLAGS += -lgsttag-0.10
    + nodist_libgst_pack_la_SOURCES += libtag.c
    + CLEANFILES += libtag.c
    + noinst_LIBRARIES += libtag.a
    + libtag_a_CFLAGS = $(tag_la_CFLAGS)
    + libtag_a_SOURCES = $(tag_la_SOURCES) $(nodist_tag_la_SOURCES)
    + tag_la_DEPENDENCIES = $(libgst_pack_lib)
    +libtag.c: libtag.a
    +
    +endif
    +
    +.a.c:
    +	/bin/sh $(top_srcdir)/codegen/gen_imp_code.sh $< > $<.imp		
    +	&& $(PYTHON) $(top_srcdir)/codegen/gen_gst_import_code.py $<.imp $@	
    +	&& rm -f $<.imp
    +
    diff -Nur gst-python-0.10.22/gst-python.spec gst-python-0.10.22_test/gst-python.spec
    --- gst-python-0.10.22/gst-python.spec	2011-10-30 00:06:10.000000000 +0800
    +++ gst-python-0.10.22_test/gst-python.spec	1970-01-01 08:00:00.000000000 +0800
    @@ -1,100 +0,0 @@
    -%define         majorminor      0.10
    -%define         gstreamer       gstreamer
    -%define		_pygtk		2.6.3
    -%define		_gst		0.10.20
    -
    -Name:           %{gstreamer}-python
    -Version:        0.10.22
    -Release:        1
    -Summary:        Python bindings for GStreamer.
    -
    -Group:          Development/Languages
    -License:        LGPL
    -URL:            http://gstreamer.freedesktop.org/
    -Source: 	http://gstreamer.freedesktop.org/src/gst-python/gst-python-%{version}.tar.gz
    -
    -BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
    -
    -Requires:	python >= 2
    -Requires:	gnome-python2
    -Requires:	pygtk2 >= %_pygtk
    -Requires:	%{gstreamer}
    -Requires:	%{gstreamer}-plugins-base
    -
    -BuildRequires:	python >= 2
    -BuildRequires:  python-devel >= 2
    -BuildRequires:  pygtk2-devel >= %_pygtk
    -BuildRequires:	xmlto
    -BuildRequires:	links
    -
    -BuildRequires:	%{gstreamer}-devel >= %_gst
    -BuildRequires:	%{gstreamer}-plugins-base-devel >= %_gst
    -
    -# sigh, libtool
    -BuildRequires:  gcc-c++
    -
    -%description
    -This module contains a wrapper that allows GStreamer applications
    -to be written in Python.
    -
    -%prep
    -%setup -q -n gst-python-%{version}
    -
    -%build
    -%configure
    -make %{?_smp_mflags}
    -
    -%install
    -rm -rf $RPM_BUILD_ROOT
    -
    -%makeinstall
    -find $RPM_BUILD_ROOT -type f -name "*.la" -exec rm -f {} ';'
    -
    -%clean
    -rm -rf $RPM_BUILD_ROOT
    -
    -%files
    -%defattr(-,root,root,-)
    -%doc AUTHORS COPYING ChangeLog NEWS README gst-python.doap
    -%dir %{_libdir}/python?.?/site-packages/gst-%{majorminor}
    -%{_libdir}/python?.?/site-packages/pygst.pth
    -%{_libdir}/python?.?/site-packages/pygst.py
    -%{_libdir}/python?.?/site-packages/gst-%{majorminor}/gst/__init__.py*
    -%{_libdir}/python?.?/site-packages/gst-%{majorminor}/gst/extend
    -%{_libdir}/python?.?/site-packages/gst-%{majorminor}/gst/_gst.so
    -%{_libdir}/python?.?/site-packages/gst-%{majorminor}/gst/interfaces.so
    -%{_libdir}/python?.?/site-packages/gst-%{majorminor}/gst/pbutils.so
    -%{_libdir}/gstreamer-%{majorminor}/libgstpython.so
    -%{_libdir}/python?.?/site-packages/gst-%{majorminor}/gst/audio.so
    -%{_libdir}/python?.?/site-packages/gst-%{majorminor}/gst/tag.so
    -%{_libdir}/python?.?/site-packages/gst-%{majorminor}/gst/video.so
    -%{_libdir}/python?.?/site-packages/gstoption.so
    -
    -
    -%{_datadir}/gst-python
    -%{_libdir}/pkgconfig/gst-python-%{majorminor}.pc
    -
    -%changelog
    -* Fri Dec 15 2006 Thomas Vander Stichele <thomas at apestaart dot org>
    -- add doap file
    -
    -* Tue Dec 20 2005 Thomas Vander Stichele <thomas at apestaart dot org>
    -- updated spec file
    -
    -* Thu Oct 06 2005 Edward Hervey < edward at fluendo dot com >
    -- Updated spec file for 0.9
    -
    -* Fri Nov 05 2004 Christian Schaller < uraeus at gnome org >
    -- Remerged spec file with cvs version
    -
    -* Tue Oct 12 2004 Thomas Vander Stichele <thomas at apestaart dot org>
    -- 0.7.93-0.fdr.1: new upstream release
    -
    -* Mon Jun 21 2004 Thomas Vander Stichele <thomas at apestaart dot org>
    -- 0.7.92-0.fdr.1: new upstream release
    -
    -* Wed Mar 31 2004 Thomas Vander Stichele <thomas at apestaart dot org>
    -- 0.7.91-0.fdr.1: new upstream release
    -
    -* Tue Sep 02 2003 Thomas Vander Stichele <thomas at apestaart dot org>
    -- 0.1.0-0.fdr.1: first fedora release
    diff -Nur gst-python-0.10.22/Makefile.am gst-python-0.10.22_test/Makefile.am
    --- gst-python-0.10.22/Makefile.am	2010-11-20 02:44:51.000000000 +0800
    +++ gst-python-0.10.22_test/Makefile.am	2015-01-20 04:50:37.000000000 +0800
    @@ -1,8 +1,8 @@
     SUBDIRS = common codegen gst examples plugin testsuite pkgconfig
     
     common_cflags = $(PYTHON_INCLUDES) $(PYGOBJECT_CFLAGS) $(GST_CFLAGS) $(GST_OPTION_CFLAGS) -fno-strict-aliasing
    -common_libadd = $(GST_LIBS) $(GST_OPTION_LIBS)
    -common_ldflags = -module -avoid-version
    +common_libadd =
    +common_ldflags = -module -avoid-version 
     
     # include before EXTRA_DIST for win32 assignment
     include $(top_srcdir)/common/win32.mak
    @@ -22,6 +22,10 @@
     	-export-symbols-regex "^(initgstoption|_PyGObject_API).*"
     gstoption_la_SOURCES = gstoptionmodule.c
     
    +if HAVE_PYGOBJECT_2_16
    +gstoption_la_DEPENDENCIES = gst/libgst_pack.la
    +endif
    +
     EXTRA_DIST = 
     	gstlibtoolimporter.py 
     	pygst.py.in 
    
  • 相关阅读:
    k8s-pv
    k8s ---kubectl 部署时,pull image 报错,拉取不到镜像
    【knowledgebase】不要在一个很大的RDD上调用collect
    【knowledgebase】如何知道partition数
    Spark SQL External Data Sources JDBC官方实现写测试
    Spark SQL External Data Sources JDBC官方实现读测试
    Sqoop2入门之导入关系型数据库数据到HDFS上(sqoop2-1.99.4版本)
    Spark Streaming、Kafka结合Spark JDBC External DataSouces处理案例
    Spark Streaming、HDFS结合Spark JDBC External DataSouces处理案例
    Spark SQL External Data Sources JDBC简易实现
  • 原文地址:https://www.cnblogs.com/eaglexmw/p/4237623.html
Copyright © 2011-2022 走看看