[gst-devel] Win32/Perl Bindings/gstreamer-0.10.pc

Jeffrey Ray jeffrey at jeffreyray.info
Mon Dec 14 03:51:00 CET 2009


Andoni Morales wrote:
> Hi,
> In the beginning GStreamer Winbuilds was intended to be used with VS,
> and for this reason we were only including the import libraries, but
> we are working to improve the integration with mingw so other FFOS
> projects can take benefit of it. The objective was to provide a simple
> way for windows developers to work with GStreamer  without having to
> worry about  all the external dependencies and be able to compile
> GStreamer with a simple click, in the Windows way :p
> Las week I was able to build all the gstreamer modules with mingw, but
> if you only need to build the bindings without having to compile
> everything you can just modify the pkgconfig files that comes in the
> gstreamer sources[0] and changes the @prefix@, @libdir@, etc.. values
> to your installation path (which should be c:\gstreamer,
> c:\gstreamer\lib, etc..).
> The current installer doesn't update the prefix of the pkgconfig files
> and those files point to wrong dirs, but we have for that a set a
> templates[1]. So you will need to replace @SHARED_BUILD_DIR@ with
> c:\gstreamer with sed for example. Doing these steps you should be
> able to build the bindings.
> Regarding the compatibility between the GStreamer binaries built using
> MSVC and other binaries built using GCC, you don't have to fear
> anything. Even if the binaries are built using MSVC, they are linked
> against the old crt, msvcrt.dll, and not the 9.0 crt, which is the one
> used by mingw. In fact, all the external dependencies like glib,
> pango, cairo, etc.. are built with gcc while the gstreamer binaries
> are built with MSVC.
> As I said we are working hard to do everything in the Linux way, and
> in the next release we will try to include all the files needed to
> build projects depending on GStreamer using mingw.
> Cheers,
> Andoni
>
>
> [0]http://cgit.freedesktop.org/gstreamer/gstreamer/tree/pkgconfig
> [1]http://code.google.com/p/ossbuild/source/browse/trunk/Shared/Build/Windows/Win32/templates/
>
>
>   
Hey, thanks a lot - that was very helpful and informative. I followed 
your instructions which i believe were:
- acquire files from source[0] and edit @vars at .
- acquire files from source[1] and replace @SHARED_BUILD_DIR@ with 
C:\gstreamer
- rename all files above to remove .in

now when I attempt to build the Perl bindings, i get the output below.


C:\gsperl>perl 
Makefile.PL                                                     
Including generated API 
documentation...                                       
WARNING: META_MERGE is not a known 
parameter.                                  
'META_MERGE' is not a known MakeMaker parameter 
name.                          
Note (probably harmless): No library found for 
-lgstreamer-0.10                
Note (probably harmless): No library found for 
-lxml2                          
Note (probably harmless): No library found for 
-lgobject-2.0                   
Note (probably harmless): No library found for 
-lglib-2.0                      
Note (probably harmless): No library found for 
-lgthread-2.0                   
Writing Makefile for 
GStreamer                                                 
                                                                                

C:\gsperl>dmake                                                                 

Skip blib\lib/GStreamer.pm 
(unchanged)                                         
Skip blib\arch/GStreamer/Install/gst2perl.h 
(unchanged)                        
cp build/IFiles.pm 
blib\arch/GStreamer/Install/Files.pm                        
Skip blib\arch/GStreamer/Install/gst2perl.typemap 
(unchanged)                  
Skip blib\arch/GStreamer/Install/doctypes 
(unchanged)                          
Skip blib\arch/GStreamer/Install/gst2perl-autogen.h 
(unchanged)                
Skip blib\arch/GStreamer/Install/gst.typemap 
(unchanged)                       
Skip blib\arch/GStreamer/Install/gst2perl-version.h 
(unchanged)                
[ XS xs\Gst.xs 
]                                                               
[ CC xs\Gst.c 
]                                                                
[ XS xs\GstBin.xs 
]                                                            
[ CC xs\GstBin.c 
]                                                             
[ XS xs\GstBuffer.xs 
]                                                         
[ CC xs\GstBuffer.c 
]                                                          
[ XS xs\GstBus.xs 
]                                                            
[ CC xs\GstBus.c 
]                                                             
[ XS xs\GstCaps.xs 
]                                                           
[ CC xs\GstCaps.c ]       
.
.
.
.
[ CC xs\GstTag.c 
]                                                             
[ XS xs\GstTagSetter.xs 
]                                                      
[ CC xs\GstTagSetter.c 
]                                                       
[ XS xs\GstTypeFindFactory.xs 
]                                                
[ CC xs\GstTypeFindFactory.c 
]                                                 
[ XS xs\GstValue.xs 
]                                                          
[ CC xs\GstValue.c 
]                                                           
Running Mkbootstrap for GStreamer 
()                                           
C:\camelbox\bin\perl.exe -MExtUtils::Command -e chmod 644 
GStreamer.bs         
dlltool --def GStreamer.def --output-exp 
dll.exp                               
[ LD blib\arch\auto\GStreamer\GStreamer.dll 
]                                  
xs/Gst.o:Gst.c:(.text+0x47c): undefined reference to 
`gst_version'             
xs/Gst.o:Gst.c:(.text+0x5fe): undefined reference to 
`gst_version_string'      
xs/Gst.o:Gst.c:(.text+0x669): undefined reference to 
`g_free'                  
xs/Gst.o:Gst.c:(.text+0x709): undefined reference to 
`gperl_argv_new'          
xs/Gst.o:Gst.c:(.text+0x71a): undefined reference to 
`gst_init'                
xs/Gst.o:Gst.c:(.text+0x722): undefined reference to 
`gperl_argv_update'       
xs/Gst.o:Gst.c:(.text+0x72a): undefined reference to 
`gperl_argv_free'         
xs/Gst.o:Gst.c:(.text+0x7e5): undefined reference to 
`gperl_argv_new'             


A few notes/questions: when i was editing the files from source[0] - did 
i need to rename any of the files (other than the extension)? I renamed 
the gstreamer.pc.in to gstreamer-0.10.pc seems how that is what was 
being asked for. Looking at the other .pc's some have the version number 
on the end, some don't. They all had a @VERSION@ variable inside to set 
- which i set to the version of my gstreamer binary in all files (0.14). 
Was this correct? Any ideas on where to go from here?

Thanks again for all the help.

-Jeff




                                                 






More information about the gstreamer-devel mailing list