LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Programming (https://www.linuxquestions.org/questions/programming-9/)
-   -   Swfdec issues on MinGW (Windows) (https://www.linuxquestions.org/questions/programming-9/swfdec-issues-on-mingw-windows-4175420508/)

c0d3d 08-05-2012 03:14 PM

Swfdec issues on MinGW (Windows)
 
Hi,

I am attempting to compile MLT (mltframework.org) on Windows using the Build Tips for Windows page (http://mltframework.org/twiki/bin/view/MLT/WindowsBuild), but I am having issues configuring Swfdec. Here is the config:

Code:

user@PC ~/src/swfdec-0.8.4
$ configure --prefix=$HOME --enable-gtk=no --enable-gstreamer=no --with-audio=n
one
checking for a BSD-compatible install... /bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for style of include used by make... GNU
checking for gcc... gcc
checking for C compiler default output file name... a.exe
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables... .exe
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking dependency style of gcc... gcc3
checking for supported compiler flags...  -Wall -Wextra -Wno-missing-field-initi
alizers -Wno-unused-parameter -Wold-style-definition -Wdeclaration-after-stateme
nt -Wmissing-declarations -Wmissing-prototypes -Wredundant-decls -Wmissing-noret
urn -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Winline -Wformat-nonl
iteral -Wformat-security -Wswitch-enum -Wswitch-default -Winit-self -Wmissing-in
clude-dirs -Wundef -Waddress -Waggregate-return -Wmissing-format-attribute -Wno-
multichar -Wnested-externs
checking build system type... i686-pc-mingw32
checking host system type... i686-pc-mingw32
checking for a sed that does not truncate output... /bin/sed
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for fgrep... /bin/grep -F
checking for ld used by gcc... c:/mingw/mingw32/bin/ld.exe
checking if the linker (c:/mingw/mingw32/bin/ld.exe) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /mingw/bin/nm
checking the name lister (/mingw/bin/nm) interface... BSD nm
checking whether ln -s works... no, using cp -p
checking the maximum length of command line arguments... 8192
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... yes
checking for c:/mingw/mingw32/bin/ld.exe option to reload object files... -r
checking how to recognize dependent libraries... file_magic ^x86 archive import|
^x86 DLL
checking for ar... ar
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /mingw/bin/nm output from gcc object... ok
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -DDLL_EXPORT -DPIC
checking if gcc PIC flag -DDLL_EXPORT -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (c:/mingw/mingw32/bin/ld.exe) supports shared li
braries... yes
checking whether -lc should be explicitly linked in... yes
checking dynamic linker characteristics... Win32 ld.exe
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking for supported compiler flags...  -std=gnu99
checking for gcc... (cached) gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for gcc option to accept ISO C89... (cached) none needed
checking dependency style of gcc... (cached) gcc3
checking for gcc... (cached) gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for gcc option to accept ISO C89... (cached) none needed
checking dependency style of gcc... (cached) gcc3
checking whether gcc and cc understand -c and -o together... yes
checking dependency style of gcc... gcc3
checking for gawk... (cached) gawk
checking for ANSI C header files... (cached) yes
checking for timezone support... no
checking for pkg-config... /mingw/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for GLIB... no
configure: error: glib-2.0, gobject-2.0 and gthread-2.0 >= 2.16 are required to
build swfdec

Do you have any suggestions to help me solve this problem?
Also, if there are better forums for this, can you please leave a reply containing the URL?

Thank you for you help!

ntubski 08-06-2012 10:37 AM

Code:

checking for GLIB... no
configure: error: glib-2.0, gobject-2.0 and gthread-2.0 >= 2.16 are required to

It can't find glib, it should be included in the GTK+ "All-in-one" bundle mentioned in the Build Tips for Windows page. Did you skip installing GTK? (I see you passed --enable-gtk=no)


PS no need to colour the prompts, they're painful to look at on a light background.

c0d3d 08-06-2012 11:56 AM

ntubski,

No, I didn't skip installing GTK+. That was the command the Swfdec section said to give to configure it.
Should I enable it in the config options?
Also, thank you for the tip!

ntubski 08-06-2012 03:20 PM

Quote:

Originally Posted by c0d3d (Post 4747339)
No, I didn't skip installing GTK+. That was the command the Swfdec section said to give to configure it.

Ah, missed that, I skimmed too quickly.

Can you find the place in configure.ac where it checks for glib? I'm guessing it's using pkg-config (if so it will say something like PKG_CHECK_MODULES([GLIB], [glib-2.0 >= 2.16]) or PKG_CHECK_EXISTS([glib-2.0 >= 2.16])). What's the output from
Code:

pkg-config --modversion --print-errors glib-2.0
If you get some error maybe retry after doing
Code:

export PKG_CONFIG_PATH=/path/to/unzipped/GTK/bundle/lib/pkgconfig

c0d3d 08-06-2012 03:45 PM

Quote:

Originally Posted by ntubski (Post 4747489)
Can you find the place in configure.ac where it checks for glib? I'm guessing it's using pkg-config (if so it will say something like PKG_CHECK_MODULES([GLIB], [glib-2.0 >= 2.16]) or PKG_CHECK_EXISTS([glib-2.0 >= 2.16]))

This is the section of the configure.ac file, with that line in bold:

Code:

dnl Check for essential libraries first:
dnl ====================================

GLIB_VER=2.16
PKG_CHECK_MODULES(GLIB, glib-2.0 >= $GLIB_VER gobject-2.0 >= $GLIB_VER gthread-2.0 >= $GLIB_VER,
                HAVE_GLIB=yes, HAVE_GLIB=no)

if test "$HAVE_GLIB" = "no"; then
  AC_MSG_ERROR([glib-2.0, gobject-2.0 and gthread-2.0 >= $GLIB_VER are required to build swfdec])

The command "pkg-config --modversion --print-errors glib-2.0" gives me:

Code:

Package glib-2.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `glib-2.0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'glib-2.0' found

After I did "export PKG_CONFIG_PATH=$HOME/lib/pkgconfig", it now gives me:
Code:

2.28.8
Now when I run "configure --prefix=$HOME --enable-gtk=no --enable-gstreamer=no --with-audio=none", I get:
Code:

checking for a BSD-compatible install... /bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for style of include used by make... GNU
checking for gcc... gcc
checking for C compiler default output file name... a.exe
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables... .exe
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking dependency style of gcc... gcc3
checking for supported compiler flags...  -Wall -Wextra -Wno-missing-field-initi
alizers -Wno-unused-parameter -Wold-style-definition -Wdeclaration-after-stateme
nt -Wmissing-declarations -Wmissing-prototypes -Wredundant-decls -Wmissing-noret
urn -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Winline -Wformat-nonl
iteral -Wformat-security -Wswitch-enum -Wswitch-default -Winit-self -Wmissing-in
clude-dirs -Wundef -Waddress -Waggregate-return -Wmissing-format-attribute -Wno-
multichar -Wnested-externs
checking build system type... i686-pc-mingw32
checking host system type... i686-pc-mingw32
checking for a sed that does not truncate output... /bin/sed
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for fgrep... /bin/grep -F
checking for ld used by gcc... c:/mingw/mingw32/bin/ld.exe
checking if the linker (c:/mingw/mingw32/bin/ld.exe) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /mingw/bin/nm
checking the name lister (/mingw/bin/nm) interface... BSD nm
checking whether ln -s works... no, using cp -p
checking the maximum length of command line arguments... 8192
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... yes
checking for c:/mingw/mingw32/bin/ld.exe option to reload object files... -r
checking how to recognize dependent libraries... file_magic ^x86 archive import|
^x86 DLL
checking for ar... ar
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /mingw/bin/nm output from gcc object... ok
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -DDLL_EXPORT -DPIC
checking if gcc PIC flag -DDLL_EXPORT -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (c:/mingw/mingw32/bin/ld.exe) supports shared li
braries... yes
checking whether -lc should be explicitly linked in... yes
checking dynamic linker characteristics... Win32 ld.exe
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking for supported compiler flags...  -std=gnu99
checking for gcc... (cached) gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for gcc option to accept ISO C89... (cached) none needed
checking dependency style of gcc... (cached) gcc3
checking for gcc... (cached) gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for gcc option to accept ISO C89... (cached) none needed
checking dependency style of gcc... (cached) gcc3
checking whether gcc and cc understand -c and -o together... yes
checking dependency style of gcc... gcc3
checking for gawk... (cached) gawk
checking for ANSI C header files... (cached) yes
checking for timezone support... no
checking for pkg-config... /mingw/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for GLIB... yes
checking for PANGO... yes
configure: Gtk support was not enabled.
configure: audio backend: none
checking for LIBOIL... yes
checking for CAIRO... yes
configure: GStreamer support was not enabled.
configure: Vivified was not enabled.
checking whether to build gtk-doc documentation... no
checking for gtkdoc-check... no
configure: creating ./config.status
config.status: creating Makefile
config.status: creating data/Makefile
config.status: creating data/swfdec.pc
config.status: creating data/swfdec-gtk.pc
config.status: creating doc/Makefile
config.status: creating swfdec/Makefile
config.status: creating swfdec/swfdec_version.h
config.status: creating swfdec/jpeg/Makefile
config.status: creating swfdec-gtk/Makefile
config.status: creating player/Makefile
config.status: creating test/Makefile
config.status: creating test/custom/Makefile
config.status: creating test/gnash/Makefile
config.status: creating test/gnash/media/Makefile
config.status: creating test/gnash/actionscript.all/Makefile
config.status: creating test/gnash/misc-mtasc.all/Makefile
config.status: creating test/gnash/misc-swfc.all/Makefile
config.status: creating test/gnash/misc-swfmill.all/Makefile
config.status: creating test/image/Makefile
config.status: creating test/sound/Makefile
config.status: creating test/trace/Makefile
config.status: creating test/various/Makefile
config.status: creating tools/Makefile
config.status: creating vivified/Makefile
config.status: creating vivified/code/Makefile
config.status: creating vivified/code/test/Makefile
config.status: creating vivified/code/test/compiler/Makefile
config.status: creating vivified/code/test/decompiler/Makefile
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing libtool commands

Yet when I try to give the command "make all install", I get:
Code:

make  all-recursive
make[1]: Entering directory `/home/support/src/swfdec-0.9.2'
Making all in swfdec
make[2]: Entering directory `/home/support/src/swfdec-0.9.2/swfdec'
(cd . \
          && echo "#include \"swfdec_as_types.h\"" \
          && echo "#define SWFDEC_AS_NATIVE(x,y,func) void func (SwfdecAsContext
 *cx, \\" \
          && echo "    SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
SwfdecAsValue *ret);" \
          && grep -he "^SWFDEC_AS_NATIVE" swfdec_access.c swfdec_accessibility.c
 swfdec_actor.c swfdec_amf.c swfdec_as_array.c swfdec_as_boolean.c swfdec_as_con
text.c swfdec_as_date.c swfdec_as_debugger.c swfdec_as_frame.c swfdec_as_functio
n.c swfdec_as_gcable.c swfdec_as_interpret.c swfdec_as_math.c swfdec_as_movie_va
lue.c swfdec_as_native_function.c swfdec_as_number.c swfdec_as_object.c swfdec_a
s_relay.c swfdec_as_script_function.c swfdec_as_stack.c swfdec_as_string.c swfde
c_as_strings.c swfdec_as_super.c swfdec_as_types.c swfdec_asbroadcaster.c swfdec
_audio.c swfdec_audio_decoder.c swfdec_audio_decoder_adpcm.c swfdec_audio_decode
r_uncompressed.c  swfdec_audio_event.c swfdec_audio_load.c swfdec_audio_flv.c sw
fdec_audio_stream.c swfdec_audio_swf_stream.c swfdec_bevel_filter.c swfdec_bitma
p_data.c swfdec_bitmap_filter.c swfdec_bitmap_movie.c swfdec_bitmap_pattern.c sw
fdec_bits.c swfdec_blur_filter.c swfdec_blur_filter_as.c swfdec_bots.c swfdec_bu
ffer.c swfdec_button.c swfdec_button_movie.c swfdec_button_movie_as.c swfdec_cac
he.c swfdec_cached.c swfdec_cached_image.c swfdec_cached_video.c swfdec_camera.c
 swfdec_character.c swfdec_color.c swfdec_color_as.c swfdec_color_matrix_filter.
c swfdec_color_matrix_filter_as.c swfdec_color_transform_as.c swfdec_constant_po
ol.c swfdec_convolution_filter.c swfdec_convolution_matrix.c swfdec_debug.c swfd
ec_decoder.c swfdec_displacement_map_filter.c swfdec_display_object.c swfdec_dis
play_object_container.c swfdec_draw.c swfdec_drop_shadow_filter.c swfdec_event.c
 swfdec_event_dispatcher.c swfdec_external_interface.c swfdec_file_loader.c swfd
ec_file_reference.c swfdec_file_reference_list.c swfdec_filter.c swfdec_filter_a
s.c swfdec_flv_decoder.c swfdec_font.c swfdec_function_list.c swfdec_gc_object.c
 swfdec_glow_filter.c swfdec_gradient_filter.c swfdec_gradient_pattern.c swfdec_
graphic.c swfdec_graphic_movie.c swfdec_image.c swfdec_image_decoder.c swfdec_in
teractive_object.c swfdec_init.c swfdec_interval.c swfdec_key_as.c swfdec_load_o
bject.c swfdec_load_object_as.c swfdec_load_sound.c swfdec_loader.c swfdec_loadv
ars_as.c swfdec_local_connection.c swfdec_microphone.c swfdec_morph_movie.c swfd
ec_morphshape.c swfdec_mouse_as.c swfdec_movie.c swfdec_movie_as_drawing.c swfde
c_movie_asprops.c swfdec_movie_clip_loader.c swfdec_net_connection.c swfdec_net_
stream.c swfdec_net_stream_as.c swfdec_path.c swfdec_pattern.c swfdec_player.c s
wfdec_player_as.c swfdec_player_scripting.c swfdec_print_job.c swfdec_policy_fil
e.c swfdec_rect.c swfdec_rectangle.c swfdec_renderer.c swfdec_resource.c swfdec_
ringbuffer.c swfdec_sandbox.c swfdec_script.c swfdec_selection.c swfdec_shape.c
swfdec_shape_parser.c swfdec_shared_object.c swfdec_socket.c swfdec_sound.c swfd
ec_sound_matrix.c swfdec_sound_object.c swfdec_sound_provider.c swfdec_sprite.c
swfdec_sprite_movie.c swfdec_sprite_movie_as.c swfdec_stage_as.c swfdec_stream.c
 swfdec_stream_target.c swfdec_stroke.c swfdec_style_sheet.c swfdec_swf_decoder.
c swfdec_system.c swfdec_system_as.c swfdec_system_ime.c swfdec_system_security.
c swfdec_tag.c swfdec_text.c swfdec_text_attributes.c swfdec_text_buffer.c swfde
c_text_field.c swfdec_text_field_movie.c swfdec_text_field_movie_as.c swfdec_tex
t_field_movie_html.c swfdec_text_format.c swfdec_text_layout.c swfdec_text_rende
rer.c swfdec_text_snapshot.c swfdec_transform_as.c swfdec_url.c swfdec_utils.c s
wfdec_version.c swfdec_video.c swfdec_video_decoder.c swfdec_video_decoder_scree
n.c swfdec_video_decoder_vp6_alpha.c swfdec_video_movie.c swfdec_video_movie_as.
c swfdec_video_provider.c swfdec_video_video_provider.c swfdec_xml_node.c swfdec
_xml.c swfdec_xml_socket.c \
          && echo "#undef SWFDEC_AS_NATIVE" \
          && echo "#define SWFDEC_AS_NATIVE(x,y,func) { x, y, func, G_STRINGIFY
(func) }," \
          && echo "const struct { guint x, y; SwfdecAsNative func; const char *n
ame; } native_funcs[] = {" \
          && grep -he "^SWFDEC_AS_NATIVE" swfdec_access.c swfdec_accessibility.c
 swfdec_actor.c swfdec_amf.c swfdec_as_array.c swfdec_as_boolean.c swfdec_as_con
text.c swfdec_as_date.c swfdec_as_debugger.c swfdec_as_frame.c swfdec_as_functio
n.c swfdec_as_gcable.c swfdec_as_interpret.c swfdec_as_math.c swfdec_as_movie_va
lue.c swfdec_as_native_function.c swfdec_as_number.c swfdec_as_object.c swfdec_a
s_relay.c swfdec_as_script_function.c swfdec_as_stack.c swfdec_as_string.c swfde
c_as_strings.c swfdec_as_super.c swfdec_as_types.c swfdec_asbroadcaster.c swfdec
_audio.c swfdec_audio_decoder.c swfdec_audio_decoder_adpcm.c swfdec_audio_decode
r_uncompressed.c  swfdec_audio_event.c swfdec_audio_load.c swfdec_audio_flv.c sw
fdec_audio_stream.c swfdec_audio_swf_stream.c swfdec_bevel_filter.c swfdec_bitma
p_data.c swfdec_bitmap_filter.c swfdec_bitmap_movie.c swfdec_bitmap_pattern.c sw
fdec_bits.c swfdec_blur_filter.c swfdec_blur_filter_as.c swfdec_bots.c swfdec_bu
ffer.c swfdec_button.c swfdec_button_movie.c swfdec_button_movie_as.c swfdec_cac
he.c swfdec_cached.c swfdec_cached_image.c swfdec_cached_video.c swfdec_camera.c
 swfdec_character.c swfdec_color.c swfdec_color_as.c swfdec_color_matrix_filter.
c swfdec_color_matrix_filter_as.c swfdec_color_transform_as.c swfdec_constant_po
ol.c swfdec_convolution_filter.c swfdec_convolution_matrix.c swfdec_debug.c swfd
ec_decoder.c swfdec_displacement_map_filter.c swfdec_display_object.c swfdec_dis
play_object_container.c swfdec_draw.c swfdec_drop_shadow_filter.c swfdec_event.c
 swfdec_event_dispatcher.c swfdec_external_interface.c swfdec_file_loader.c swfd
ec_file_reference.c swfdec_file_reference_list.c swfdec_filter.c swfdec_filter_a
s.c swfdec_flv_decoder.c swfdec_font.c swfdec_function_list.c swfdec_gc_object.c
 swfdec_glow_filter.c swfdec_gradient_filter.c swfdec_gradient_pattern.c swfdec_
graphic.c swfdec_graphic_movie.c swfdec_image.c swfdec_image_decoder.c swfdec_in
teractive_object.c swfdec_init.c swfdec_interval.c swfdec_key_as.c swfdec_load_o
bject.c swfdec_load_object_as.c swfdec_load_sound.c swfdec_loader.c swfdec_loadv
ars_as.c swfdec_local_connection.c swfdec_microphone.c swfdec_morph_movie.c swfd
ec_morphshape.c swfdec_mouse_as.c swfdec_movie.c swfdec_movie_as_drawing.c swfde
c_movie_asprops.c swfdec_movie_clip_loader.c swfdec_net_connection.c swfdec_net_
stream.c swfdec_net_stream_as.c swfdec_path.c swfdec_pattern.c swfdec_player.c s
wfdec_player_as.c swfdec_player_scripting.c swfdec_print_job.c swfdec_policy_fil
e.c swfdec_rect.c swfdec_rectangle.c swfdec_renderer.c swfdec_resource.c swfdec_
ringbuffer.c swfdec_sandbox.c swfdec_script.c swfdec_selection.c swfdec_shape.c
swfdec_shape_parser.c swfdec_shared_object.c swfdec_socket.c swfdec_sound.c swfd
ec_sound_matrix.c swfdec_sound_object.c swfdec_sound_provider.c swfdec_sprite.c
swfdec_sprite_movie.c swfdec_sprite_movie_as.c swfdec_stage_as.c swfdec_stream.c
 swfdec_stream_target.c swfdec_stroke.c swfdec_style_sheet.c swfdec_swf_decoder.
c swfdec_system.c swfdec_system_as.c swfdec_system_ime.c swfdec_system_security.
c swfdec_tag.c swfdec_text.c swfdec_text_attributes.c swfdec_text_buffer.c swfde
c_text_field.c swfdec_text_field_movie.c swfdec_text_field_movie_as.c swfdec_tex
t_field_movie_html.c swfdec_text_format.c swfdec_text_layout.c swfdec_text_rende
rer.c swfdec_text_snapshot.c swfdec_transform_as.c swfdec_url.c swfdec_utils.c s
wfdec_version.c swfdec_video.c swfdec_video_decoder.c swfdec_video_decoder_scree
n.c swfdec_video_decoder_vp6_alpha.c swfdec_video_movie.c swfdec_video_movie_as.
c swfdec_video_provider.c swfdec_video_video_provider.c swfdec_xml_node.c swfdec
_xml.c swfdec_xml_socket.c \
          && echo "  { 0, 0, NULL }" \
          && echo "};" \
          && echo "#undef SWFDEC_AS_NATIVE" \
        ) >> xgen-san \
        && (cmp -s xgen-san swfdec_asnative.c || cp xgen-san swfdec_asnative.c)
\
        && rm -f xgen-san
( cd . && echo "/* This is a generated file. See swfdec_as_strings.c for details
. */" \
          && echo "#ifndef _SWFDEC_AS_STRINGS_H_" \
          && echo "#define _SWFDEC_AS_STRINGS_H_" \
          && echo "#include <swfdec/swfdec_as_types.h>" \
          && echo "G_BEGIN_DECLS" \
          && echo "#define SWFDEC_AS_CONSTANT_STRING_LENGTH_MAX 40" \
          && echo "typedef struct {" \
          && echo "  SwfdecAsStringValue *      next;" \
          && echo "  gsize                      length;" \
          && echo "  char                      string[SWFDEC_AS_CONSTANT_STRING
_LENGTH_MAX];" \
          && echo "} SwfdecAsConstantStringValue;" \
          && echo "extern const SwfdecAsConstantStringValue swfdec_as_strings[];
" \
          && grep "  SWFDEC_AS_CONSTANT_STRING" swfdec_as_strings.c \
          | sed "s/.*(\"\(.*\)\").*/\1/" \
          | LC_ALL="C" gawk '{ if ($0 == "") name = "EMPTY"; else if ($0 == ",")
 name = "COMMA"; else if ($0 == "/") name = "SLASH"; else name = $0; gsub("[^a-z
A-Z0-9]","_",name); print "#define SWFDEC_AS_STR_" name " (((SwfdecAsStringValue
 *) &swfdec_as_strings[" (x + 0) "])->string)"; x = x + 1; }' \
          && echo "G_END_DECLS" \
          && echo "#endif" ) > xgen-sas \
        && (cmp -s xgen-sas swfdec_as_strings.h || cp xgen-sas swfdec_as_strings
.h ) \
        && rm -f xgen-sas
( cd . && glib-mkenums \
                        --fhead "#include \"swfdec.h\"\n" \
                        --fprod "\n/* enumerations from \"@filename@\" */" \
                        --vhead "GType\n@enum_name@_get_type (void)\n{\n  static
 GType etype = 0;\n  if (etype == 0) {\n    static const G@Type@Value values[] =
 {" \
                        --vprod "      { @VALUENAME@, \"@VALUENAME@\", \"@valuen
ick@\" }," \
                        --vtail "      { 0, NULL, NULL }\n    };\n    etype = g_
@type@_register_static (g_intern_static_string (\"@EnumName@\"), values);\n  }\n
  return etype;\n}\n" \
                swfdec.h swfdec_as_array.h swfdec_as_context.h swfdec_as_debugge
r.h swfdec_as_frame.h swfdec_as_function.h swfdec_as_native_function.h swfdec_as
_object.h swfdec_as_relay.h swfdec_as_string_value.h swfdec_as_types.h swfdec_au
dio.h swfdec_buffer.h swfdec_file_loader.h swfdec_gc_object.h swfdec_keys.h swfd
ec_loader.h swfdec_player.h swfdec_player_scripting.h swfdec_rectangle.h swfdec_
renderer.h swfdec_script.h swfdec_socket.h swfdec_stream.h swfdec_system.h swfde
c_url.h ) > xgen-sec \
        && (cmp -s xgen-sec swfdec_enums.c || cp xgen-sec swfdec_enums.c ) \
        && rm -f xgen-sec
/bin/sh: line 1: glib-mkenums: command not found
make[2]: *** [swfdec_enums.c] Error 127
make[2]: Leaving directory `/home/support/src/swfdec-0.9.2/swfdec'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/support/src/swfdec-0.9.2'
make: *** [all] Error 2

Any tips/suggestions?

PS: here is the glib-2.0.pc file I found in my lib/pkgconfig directory, in case you need it:
Code:

prefix=/devel/target/9af0ed5b9823f125da25c47653b9c863
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include

glib_genmarshal=glib-genmarshal
gobject_query=gobject-query
glib_mkenums=glib-mkenums

Name: GLib
Description: C Utility Library
Version: 2.28.8
Libs: -L${libdir} -lglib-2.0 -lintl
Libs.private:
Cflags: -I${includedir}/glib-2.0 -I${libdir}/glib-2.0/include -mms-bitfields

PPS: I've been doing many edits to this post because I keep on finding dummy mistakes I made.

ntubski 08-07-2012 09:22 AM

Quote:

Originally Posted by c0d3d (Post 4747498)
Code:

...
/bin/sh: line 1: glib-mkenums: command not found

Any tips/suggestions?

I'm guessing glib-mkenums will be in the GTK bundle, so you add should it's location to PATH:
Code:

export PATH="$PATH:$HOME/bin"

c0d3d 08-07-2012 02:51 PM

Thanks for the info.
Swfdec finally configured and it builded succesfully.

Yet, when I try to build MLT after I configured it, I get this:
Code:

list='src/framework src/mlt++ src/melt src/modules src/swig profiles'; \
        for subdir in $list; do \
                make -s -C $subdir depend || exit 1; \
                make -C $subdir all || exit 1; \
        done
make[1]: Entering directory `/home/user/source/mlt/src/framework'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/home/user/source/mlt/src/framework'
make[1]: Entering directory `/home/user/source/mlt/src/mlt++'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/home/user/source/mlt/src/mlt++'
make[1]: Entering directory `/home/user/source/mlt/src/melt'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/home/user/source/mlt/src/melt'
make[1]: Entering directory `/home/user/source/mlt/src/modules'
list='avformat core decklink dgraft dv effectv feeds frei0r gtk2 jackrack kdenli

ve kino linsys lumas motion_est normalize oldfilm plus qimage resample rotoscopi

ng rtaudio sdl sox swfdec videostab vmfx vorbis xine xml'; \
        for subdir in $list; do \
                if [ -f $subdir/Makefile -a ! -f disable-$subdir ] ; \
                then make -C $subdir all || exit 1; \
                fi \
        done
make[2]: Entering directory `/home/user/source/mlt/src/modules/avformat'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/home/user/source/mlt/src/modules/avformat'
make[2]: Entering directory `/home/user/source/mlt/src/modules/core'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/home/user/source/mlt/src/modules/core'
make[2]: Entering directory `/home/user/source/mlt/src/modules/dgraft'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/home/user/source/mlt/src/modules/dgraft'
make[2]: Entering directory `/home/user/source/mlt/src/modules/effectv'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/home/user/source/mlt/src/modules/effectv'
make[2]: Entering directory `/home/user/source/mlt/src/modules/feeds'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/home/user/source/mlt/src/modules/feeds'
make[2]: Entering directory `/home/user/source/mlt/src/modules/frei0r'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/home/user/source/mlt/src/modules/frei0r'
make[2]: Entering directory `/home/user/source/mlt/src/modules/gtk2'
gcc -I/home/user/include -Wall -DPIC  -O2 -pipe -fno-tree-dominator-opts -fn
o-tree-pre -ffast-math    -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wall -D

PIC  -O2 -pipe -fno-tree-dominator-opts -fno-tree-pre -ffast-math    -g -D_FILE

_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -I../.. -Wall -DPIC  -O2 -pipe -fno-tree-do

minator-opts -fno-tree-pre -ffast-math    -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE

_SOURCE `pkg-config  --cflags gtk+-2.0` `pkg-config  --cflags gdk-pixbuf-2.0` `p

kg-config  --cflags pangoft2`  -c -o factory.o factory.c
gcc -I/home/user/include -Wall -DPIC  -O2 -pipe -fno-tree-dominator-opts -fn
o-tree-pre -ffast-math    -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wall -D

PIC  -O2 -pipe -fno-tree-dominator-opts -fno-tree-pre -ffast-math    -g -D_FILE

_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -I../.. -Wall -DPIC  -O2 -pipe -fno-tree-do

minator-opts -fno-tree-pre -ffast-math    -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE

_SOURCE `pkg-config  --cflags gtk+-2.0` `pkg-config  --cflags gdk-pixbuf-2.0` `p

kg-config  --cflags pangoft2`  -c -o producer_pixbuf.o producer_pixbuf.c
gcc -shared -o ../libmltgtk2.dll factory.o consumer_gtk2.o producer_pixbuf.o pix

ops.o filter_rescale.o producer_pango.o filter_dynamictext.o  -L../../framework
-lmlt -lpthread -lm -Wl,--no-undefined -Wl,--as-needed `pkg-config  --libs gtk+-

2.0` `pkg-config  --libs gdk-pixbuf-2.0` `pkg-config  --libs pangoft2` -liconv
make[2]: Leaving directory `/home/user/source/mlt/src/modules/gtk2'
make[2]: Entering directory `/home/user/source/mlt/src/modules/jackrack'
gcc -shared -o ../libmltjackrack.dll factory.o consumer_jack.o jack_rack.o lock_

free_fifo.o plugin.o plugin_desc.o plugin_mgr.o plugin_settings.o process.o filt

er_jackrack.o filter_ladspa.o -L../../framework -lmlt -lpthread -Wl,--no-undefin

ed -Wl,--as-needed `pkg-config --libs jack` -ldl `pkg-config --libs libxml-2.0`
`pkg-config  --libs glib-2.0` -lm
c:/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../mingw32/bin/ld.exe: cannot fin

d -ljack
c:/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../mingw32/bin/ld.exe: cannot fin

d -ljackserver
collect2.exe: error: ld returned 1 exit status
make[2]: *** [../libmltjackrack.dll] Error 1
make[2]: Leaving directory `/home/user/source/mlt/src/modules/jackrack'
make[1]: *** [all] Error 1
make[1]: Leaving directory `/home/user/source/mlt/src/modules'
make: *** [all] Error 1

The error seems to be here:
Code:

c:/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../mingw32/bin/ld.exe: cannot find -ljack
c:/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../mingw32/bin/ld.exe: cannot find -ljackserver

Any ideas?

ntubski 08-07-2012 04:58 PM

Code:

gcc -shared -o ../libmltjackrack.dll factory.o consumer_jack.o jack_rack.o lock_free_fifo.o plugin.o plugin_desc.o plugin_mgr.o plugin_settings.o process.o filter_jackrack.o filter_ladspa.o -L../../framework -lmlt -lpthread -Wl,--no-undefined -Wl,--as-needed `pkg-config --libs jack` -ldl `pkg-config --libs libxml-2.0` `pkg-config  --libs glib-2.0` -lm
c:/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../mingw32/bin/ld.exe: cannot find -ljack
c:/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../mingw32/bin/ld.exe: cannot find -ljackserver

Presumably -ljack and -ljackserver are coming from pkg-config --libs jack. If you can track down libjack.dll and libjackserver.dll (could also be .a), you need to add -L/directory/with/library to that command. I think you could add it to the LDFLAGS variable, or change the jack.pc file. Or you could run the command manually.

c0d3d 08-08-2012 05:02 PM

This is what "pkg-config --libs jack" returned:
Code:

-LC:/MinGW/msys/1.0/home/support/lib -ljack -ljackserver
This is the pkg-config file the Build Tips for Windows page said to write, the version being the only thing changed (1.9.8 instead of 1.9.6):
Code:

prefix=/ignore
exec_prefix=${prefix}
libdir=${prefix}/lib
includedir=${prefix}/include

Name: jack
Description: the Jack Audio Connection Kit: a low-latency synchronous callback-based media server
Version: 1.9.8
Libs: -L${libdir} -ljack -ljackserver
Cflags: -I${includedir}

Quote:

Originally Posted by ntubski (Post 4748437)
If you can track down libjack.dll and libjackserver.dll (could also be .a), you need to add -L/directory/with/library to that command.

I copied those two files from C;/Windows/System32 to the build directory, as it said in the webpage.

Quote:

Originally Posted by ntubski (Post 4748437)
I think you could add it to the LDFLAGS variable

I tried changing the LDFLAGS variable by doing "export LDFLAGS=$HOME/lib" and "export LDFLAGS=$HOME/build" (as I said before, I copied libjack and libjackserver), both to no avail.

Also, I configured MLT with "./configure --prefix=$HOME/build --enable-gpl --disable-decklink", according to the webpage.
Any ideas?

ntubski 08-08-2012 06:38 PM

Quote:

Originally Posted by c0d3d (Post 4749338)
This is what "pkg-config --libs jack" returned:
Code:

-LC:/MinGW/msys/1.0/home/support/lib -ljack -ljackserver

Assuming libjack.dll isn't in C:/MinGW/msys/1.0/home/support/lib, that isn't right.

Quote:

This is the pkg-config file the Build Tips for Windows page said to write, the version being the only thing changed (1.9.8 instead of 1.9.6):
Code:

prefix=/ignore
exec_prefix=${prefix}
libdir=${prefix}/lib
includedir=${prefix}/include

Name: jack
Description: the Jack Audio Connection Kit: a low-latency synchronous callback-based media server
Version: 1.9.8
Libs: -L${libdir} -ljack -ljackserver
Cflags: -I${includedir}


Seems like libdir should be changed.

Quote:

I tried changing the LDFLAGS variable by doing "export LDFLAGS=$HOME/lib" and "export LDFLAGS=$HOME/build" (as I said before, I copied libjack and libjackserver), both to no avail.
It needs to be "export LDFLAGS=-L$HOME/lib" (or export LDFLAGS=-L$HOME/build; it seems like the instructions say to copy it to both places? Kind of confusing). After doing that export, do you see it (the value of LDFLAGS) show up in the link command? I think the Makefile picks it up straight off, but you might need to re./configure.

c0d3d 08-09-2012 03:39 PM

Thank you!!! I finally got MLT compiled.
Unfortunately, I am having issues getting it to bind with Python.
This is the related section I found on the Build Tips for Windows page, and I do not get it:
Quote:

SWIG and Python bindings
  1. Install Python 2.x from python.org.
  2. Install swigwin from swig.org.
  3. set environment variables for PYTHON_INCLUDE and PYTHON_LIB per http://www.swig.org/Doc1.3/Windows.html#Windows_python
  4. build manually using src/swig/python/build as a guide
    • need to add "-L$PYTHON_LIB -lpython27"
    • _mlt.so => _mlt.pyd
  5. cp {mlt.py,_mlt.pyd} ~/build

I am attempting to make it for Python 3.
Also, build is not a text file.
Any ideas?

ntubski 08-09-2012 10:05 PM

Quote:

Originally Posted by c0d3d (Post 4750236)
Thank you!!! I finally got MLT compiled.

Yay! :)

Quote:

Unfortunately, I am having issues getting it to bind with Python.
...I do not get it:
...
Also, build is not a text file.
We're gonna need a bit more info. Which step are you having trouble with? If build is not a text file, what is it? eg directory (what's inside), binary file (what does file tell you)...

c0d3d 08-12-2012 01:25 PM

Quote:

Originally Posted by ntubski (Post 4750474)
We're gonna need a bit more info. Which step are you having trouble with? If build is not a text file, what is it? eg directory (what's inside), binary file (what does file tell you)...

No, it's not a binary file. This is the original build file:
Code:

#!/bin/sh

if [ "$1" = "clean" ]
then
        ( cd `dirname $0`; rm -f *.cxx *.so *.o mlt.i ../.python mlt.py* )
        exit 0
fi

path=`which python 2> /dev/null`

if [ $? = 0 ]
then
        # Change this as needed
        export PYTHON_INCLUDE=`python -c "import sys;print \"%s/include/python%d.%d\"%(sys.prefix,sys.version_info[0],sys.version_info[1])"`

        [ ! -d "$PYTHON_INCLUDE" ] && echo python development missing && exit 1

        ln -sf ../mlt.i

        # Invoke swig
        swig -c++ -I../../mlt++ -I../.. -python mlt.i || exit $?

        # Compile the wrapper
        g++ -fPIC -D_GNU_SOURCE -c -rdynamic -pthread -I../.. -I$PYTHON_INCLUDE mlt_wrap.cxx || exit $?

        # Create the module
        g++ -shared mlt_wrap.o -L../../mlt++ -lmlt++ -L../../framework -lmlt $(python-config --ldflags) -o _mlt.so || exit $?
else
        echo Python not installed.
        exit 1
fi

Since I am using it for Python 3.x, I modified it to work with that version:
Code:

#!/bin/sh

if [ "$1" = "clean" ]
then
        ( cd `dirname $0`; rm -f *.cxx *.so *.o mlt.i ../.python mlt.py* )
        exit 0
fi

path=`which python 2> /dev/null`

if [ $? = 0 ]
then
        # Change this as needed
        export PYTHON_INCLUDE=`python -c "import sys;print(str(sys.prefix)+\"\include\")"`

        [ ! -d "$PYTHON_INCLUDE" ] && echo python development missing && exit 1

        ln -sf ../mlt.i

        # Invoke swig
        swig -c++ -I../../mlt++ -I../.. -python mlt.i || exit $?

        # Compile the wrapper
        g++ -fPIC -D_GNU_SOURCE -c -dynamic -pthread -I../.. -I$PYTHON_INCLUDE mlt_wrap.cxx || exit $?

        # Create the module
        g++ -shared mlt_wrap.o -L../../mlt++ -lmlt++ -L../../framework -lmlt $(python-config --ldflags) -o _mlt.so || exit $?
else
        echo Python not installed.
        exit 1
fi

It works, except for this issue (in bold):
Code:

..\..\mlt++\MltGeometry.h(62) : Warning 509: Overloaded method Mlt::Geometry::fe
tch(Mlt::GeometryItem *,float) effectively ignored,
..\..\mlt++\MltGeometry.h(61) : Warning 509: as it is shadowed by Mlt::Geometry:
:fetch(Mlt::GeometryItem &,float).
..\..\mlt++\MltGeometry.h(65) : Warning 509: Overloaded method Mlt::Geometry::in
sert(Mlt::GeometryItem *) effectively ignored,
..\..\mlt++\MltGeometry.h(64) : Warning 509: as it is shadowed by Mlt::Geometry:
:insert(Mlt::GeometryItem &).
..\..\mlt++\MltGeometry.h(71) : Warning 509: Overloaded method Mlt::Geometry::ne
xt_key(Mlt::GeometryItem *,int) effectively ignored,
..\..\mlt++\MltGeometry.h(70) : Warning 509: as it is shadowed by Mlt::Geometry:
:next_key(Mlt::GeometryItem &,int).
..\..\mlt++\MltGeometry.h(73) : Warning 509: Overloaded method Mlt::Geometry::pr
ev_key(Mlt::GeometryItem *,int) effectively ignored,
..\..\mlt++\MltGeometry.h(72) : Warning 509: as it is shadowed by Mlt::Geometry:
:prev_key(Mlt::GeometryItem &,int).
..\..\mlt++\MltProducer.h(48) : Warning 509: Overloaded method Mlt::Producer::Pr
oducer(Mlt::Producer *) effectively ignored,
..\..\mlt++\MltProducer.h(47) : Warning 509: as it is shadowed by Mlt::Producer:
:Producer(Mlt::Producer &).
..\..\mlt++\MltPlaylist.h(102) : Warning 509: Overloaded method Mlt::Playlist::i
nsert_at(int,Mlt::Producer &) effectively ignored,
..\..\mlt++\MltPlaylist.h(101) : Warning 509: as it is shadowed by Mlt::Playlist
::insert_at(int,Mlt::Producer *).
..\..\mlt++\MltPlaylist.h(101) : Warning 509: Overloaded method Mlt::Playlist::i
nsert_at(int,Mlt::Producer *,int) effectively ignored,
..\..\mlt++\MltPlaylist.h(102) : Warning 509: as it is shadowed by Mlt::Playlist
::insert_at(int,Mlt::Producer &,int).
..\..\mlt++\MltTractor.h(59) : Warning 509: Overloaded method Mlt::Tractor::plan
t_transition(Mlt::Transition *) effectively ignored,
..\..\mlt++\MltTractor.h(58) : Warning 509: as it is shadowed by Mlt::Tractor::p
lant_transition(Mlt::Transition &).
..\..\mlt++\MltTractor.h(58) : Warning 509: Overloaded method Mlt::Tractor::plan
t_transition(Mlt::Transition &,int) effectively ignored,
..\..\mlt++\MltTractor.h(59) : Warning 509: as it is shadowed by Mlt::Tractor::p
lant_transition(Mlt::Transition *,int).
..\..\mlt++\MltTractor.h(59) : Warning 509: Overloaded method Mlt::Tractor::plan
t_transition(Mlt::Transition *,int,int) effectively ignored,
..\..\mlt++\MltTractor.h(58) : Warning 509: as it is shadowed by Mlt::Tractor::p
lant_transition(Mlt::Transition &,int,int).
..\..\mlt++\MltTractor.h(61) : Warning 509: Overloaded method Mlt::Tractor::plan
t_filter(Mlt::Filter *) effectively ignored,
..\..\mlt++\MltTractor.h(60) : Warning 509: as it is shadowed by Mlt::Tractor::p
lant_filter(Mlt::Filter &).
..\..\mlt++\MltTractor.h(60) : Warning 509: Overloaded method Mlt::Tractor::plan
t_filter(Mlt::Filter &,int) effectively ignored,
..\..\mlt++\MltTractor.h(61) : Warning 509: as it is shadowed by Mlt::Tractor::p
lant_filter(Mlt::Filter *,int).
cc1plus.exe: warning: unrecognized gcc debugging option: y [enabled by default]
cc1plus.exe: warning: unrecognized gcc debugging option: n [enabled by default]
cc1plus.exe: warning: unrecognized gcc debugging option: m [enabled by default]
cc1plus.exe: warning: unrecognized gcc debugging option: i [enabled by default]
cc1plus.exe: warning: unrecognized gcc debugging option: c [enabled by default]
mlt_wrap.cxx:1:0: warning: -fPIC ignored for target (all code is position indepe
ndent) [enabled by default]
mlt_wrap.cxx: In function 'PyObject* _wrap_frame_get_waveform(PyObject*, PyObjec
t*)':
mlt_wrap.cxx:22146:78: error: 'PyString_FromStringAndSize' was not declared in t
his scope
mlt_wrap.cxx: In function 'PyObject* _wrap_frame_get_image(PyObject*, PyObject*)
':
mlt_wrap.cxx:22200:78: error: 'PyString_FromStringAndSize' was not declared in t
his scope

Any ideas? See Update 1.

UPDATE 1:
Turns out that, in, Python 3.x, "PyString_*" has been replaced with "PyBytes_*", so I changed the mlt wrapper (mlt_wrap.cxx) to account for that, and it worked, but running "g++ -shared mlt_wrap.o -L../../mlt++ -lmlt++ -L../../framework -lmlt $(python-config --ldflags) -o _mlt.so || exit $?" gives me:
Code:

mlt_wrap.o:mlt_wrap.cxx:(.text+0x29a13): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x29bde): undefined reference to `__imp__PyObject_Size'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x2a07e): undefined reference to `__imp__PyExc_NotImplementedError'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x2a109): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x2a25d): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x2a3c6): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x2a572): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x2a6a6): undefined reference to `__imp__PyObject_Size'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x2a861): undefined reference to `__imp__PyExc_NotImplementedError'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x2a8f5): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x2aacb): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x2ac94): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x2acfe): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x2adbe): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x2af5d): more undefined references to `__imp__PyArg_ParseTuple' follow
mlt_wrap.o:mlt_wrap.cxx:(.text+0x2b7e4): undefined reference to `__imp__PyObject_Size'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x2bba8): undefined reference to `__imp__PyExc_NotImplementedError'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x2bc1a): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x2bd07): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x2be10): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x2bf3d): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x2c0c6): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x2c1b1): more undefined references to `__imp__PyArg_ParseTuple' follow
mlt_wrap.o:mlt_wrap.cxx:(.text+0x2cf73): undefined reference to `__imp__PyObject_Size'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x2d2ac): undefined reference to `__imp__PyExc_NotImplementedError'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x2d31c): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x2d409): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x2d512): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x2d653): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x2d84f): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x2d9c2): undefined reference to `__imp__PyObject_Size'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x2dbc1): undefined reference to `__imp__PyExc_NotImplementedError'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x2dc59): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x2dde4): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x2decf): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x2dfba): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x2e0c8): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x2e249): more undefined references to `__imp__PyArg_ParseTuple' follow
mlt_wrap.o:mlt_wrap.cxx:(.text+0x2e626): undefined reference to `__imp__PyFloat_FromDouble'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x2e662): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x2e735): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x2e9ef): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x2ebf2): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x2ed4b): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x2eea4): more undefined references to `__imp__PyArg_ParseTuple' follow
mlt_wrap.o:mlt_wrap.cxx:(.text+0x2efbc): undefined reference to `__imp__PyObject_Size'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x2f2f5): undefined reference to `__imp__PyExc_NotImplementedError'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x2f365): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x2f452): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x2f55b): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x2f68e): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x2f866): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x2fa94): more undefined references to `__imp__PyArg_ParseTuple' follow
mlt_wrap.o:mlt_wrap.cxx:(.text+0x3021d): undefined reference to `__imp__PyFloat_FromDouble'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x3029f): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x303ca): undefined reference to `__imp__PyFloat_FromDouble'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x30406): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x30493): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x305c7): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x30720): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x3085a): undefined reference to `__imp__PyObject_Size'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x309e8): undefined reference to `__imp__PyExc_NotImplementedError'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x30a54): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x30b41): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x30c45): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x30d86): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x30f89): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x31120): more undefined references to `__imp__PyArg_ParseTuple' follow
mlt_wrap.o:mlt_wrap.cxx:(.text+0x31738): undefined reference to `__imp__PyObject_Size'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x31858): undefined reference to `__imp__PyExc_NotImplementedError'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x318c2): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x319af): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x31ab3): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x31bf4): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x31df0): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x31f63): undefined reference to `__imp__PyObject_Size'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x32162): undefined reference to `__imp__PyExc_NotImplementedError'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x3221d): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x32483): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x32687): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x32805): undefined reference to `__imp__PyObject_Size'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x32b2d): undefined reference to `__imp__PyExc_NotImplementedError'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x32bc2): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x32d17): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x32d81): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x32e41): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x32f9a): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x330ce): more undefined references to `__imp__PyArg_ParseTuple' follow
mlt_wrap.o:mlt_wrap.cxx:(.text+0x3370e): undefined reference to `__imp__PyObject_Size'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x33a64): undefined reference to `__imp__PyExc_NotImplementedError'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x33ad4): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x33bc1): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x33cca): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x33dda): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x33ee5): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x33fe9): more undefined references to `__imp__PyArg_ParseTuple' follow
mlt_wrap.o:mlt_wrap.cxx:(.text+0x3510c): undefined reference to `__imp__PyObject_Size'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x35775): undefined reference to `__imp__PyExc_NotImplementedError'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x3582b): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x35a1b): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x35bd3): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x35d9b): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x35ee3): undefined reference to `__imp__PyObject_Size'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x3629d): undefined reference to `__imp__PyExc_NotImplementedError'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x3637c): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x36627): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x36785): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x367ef): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x368a6): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x369b6): more undefined references to `__imp__PyArg_ParseTuple' follow
mlt_wrap.o:mlt_wrap.cxx:(.text+0x38a37): undefined reference to `__imp__PyObject_Size'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x38c94): undefined reference to `__imp__PyExc_NotImplementedError'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x38d00): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x38e11): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x38fbd): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x39161): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x39305): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x39463): more undefined references to `__imp__PyArg_ParseTuple' follow
mlt_wrap.o:mlt_wrap.cxx:(.text+0x3967a): undefined reference to `__imp__PyBytes_FromStringAndSize'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x39718): undefined reference to `__imp__PyArg_ParseTuple'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x398d6): undefined reference to `__imp__PyBytes_FromStringAndSize'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x39d13): undefined reference to `__imp__PyUnicode_InternFromString'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x39d29): undefined reference to `__imp__PyUnicode_InternFromString'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x39d49): undefined reference to `__imp__PyUnicodeUCS2_FromString'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x39d60): undefined reference to `__imp__PyUnicodeUCS2_Concat'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x39d70): undefined reference to `__imp__Py_DecRef'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x39d7d): undefined reference to `__imp__Py_DecRef'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x39d9b): undefined reference to `__imp__PyUnicode_InternFromString'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x39db2): undefined reference to `__imp__PyUnicodeUCS2_Concat'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x39dc2): undefined reference to `__imp__Py_DecRef'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x39dcf): undefined reference to `__imp__Py_DecRef'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x39dfb): undefined reference to `__imp__PyUnicode_InternFromString'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x39e12): undefined reference to `__imp__PyUnicodeUCS2_Concat'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x39e22): undefined reference to `__imp__Py_DecRef'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x39e2f): undefined reference to `__imp__Py_DecRef'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x39f6a): undefined reference to `__imp__PyErr_Occurred'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x39f7f): undefined reference to `__imp__PyExc_NameError'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x39f91): undefined reference to `__imp__PyErr_SetString'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x39ffa): undefined reference to `__imp__PyErr_Occurred'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x3a00f): undefined reference to `__imp__PyExc_NameError'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x3a021): undefined reference to `__imp__PyErr_SetString'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x3a0e6): undefined reference to `__imp__PyType_Ready'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x3a12e): undefined reference to `__imp__PyObject_Malloc'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x3a13c): undefined reference to `__imp__PyObject_Init'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x3a301): undefined reference to `__imp__PyDict_SetItemString'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x3a5c0): undefined reference to `__imp__PyModule_Create2'
mlt_wrap.o:mlt_wrap.cxx:(.text+0x3a5d0): undefined reference to `__imp__PyModule_GetDict'
mlt_wrap.o:mlt_wrap.cxx:(.data+0xc8): undefined reference to `_PyObject_GenericGetAttr'
collect2.exe: error: ld returned 1 exit status

Any ideas?

ntubski 08-12-2012 02:30 PM

Quote:

Originally Posted by c0d3d (Post 4752501)
No, it's not a binary file. This is the original build file:

So it is a text file.
Code:

        g++ -fPIC -D_GNU_SOURCE -c -dynamic -pthread -I../.. -I$PYTHON_INCLUDE mlt_wrap.cxx || exit $?
You seem to have dropped the leading r from -rdynamic.

Code:

mlt_wrap.cxx: In function 'PyObject* _wrap_frame_get_waveform(PyObject*, PyObjec
t*)':
mlt_wrap.cxx:22146:78: error: 'PyString_FromStringAndSize' was not declared in t
his scope
mlt_wrap.cxx: In function 'PyObject* _wrap_frame_get_image(PyObject*, PyObject*)
':
mlt_wrap.cxx:22200:78: error: 'PyString_FromStringAndSize' was not declared in t
his scope

Not sure about this one, there weren't any previous errors about missing header files, were there? According to the documentation PyString_* functions are renamed to PyBytes_*, in 3.x but the old PyString_* are still supposed to be supported. I guess you could try hunting down the declaration in the Python headers and seeing if the swig generated code is #including the right thing...

Oh, I see you got around that, apparently the documentation lies.

Also, swig apparently has a -py3 option, maybe try that.


The undefined reference stuff looks like the python library is missing. What's the output from python-config --ldflags? Possibly you should add --libs to that command (python-config --help may give some clues). Or try putting -lpython after it.

c0d3d 08-13-2012 10:45 PM

Quote:

Originally Posted by ntubski
The undefined reference stuff looks like the python library is missing. What's the output from python-config --ldflags?Or try putting -lpython after it.

Can you tell me where python-config is located? When I run it directly, I get a "command not found" error.
Quote:

Or try putting -lpython after it
When I run build, I would run it like this (that was the command on the webpage, the only thing being changed is "-lpython32" instead of "-python27"):
Code:

build -L$PYTHON_LIB -lpython32
I didn't put "./" before "build" because PATH was set to check the current directory first.

ntubski 08-14-2012 10:51 AM

Quote:

Originally Posted by c0d3d (Post 4753582)
Can you tell me where python-config is located? When I run it directly, I get a "command not found" error.

Well that sounds like the problem then. I would guess it should be located somewhere in the python installation. If you can put the flags in yourself (see below) then you don't need to find it.

Quote:

When I run build, I would run it like this (that was the command on the webpage, the only thing being changed is "-lpython32" instead of "-python27"):
Code:

build -L$PYTHON_LIB -lpython32

-L$PYTHON_LIB -lpython32 should go inside build, after (or instead of) $(python-config --ldflags).

c0d3d 08-14-2012 04:17 PM

Quote:

Originally Posted by ntubski (Post 4753974)
-L$PYTHON_LIB -lpython32 should go inside build, after (or instead of) $(python-config --ldflags).

When I run the command "g++ -shared mlt_wrap.o -L../../mlt++ -lmlt++ -L../../framework -lmlt -L$PYTHON_LIB -lpython32 -o _mlt.so", I get:
Code:

c:/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../mingw32/bin/ld.exe: cannot find -lpython32
collect2.exe: error: ld returned 1 exit status

Any ideas?

ntubski 08-14-2012 07:05 PM

The instructions are wrong, actually.
Quote:

3. set environment variables for PYTHON_INCLUDE and PYTHON_LIB per http://www.swig.org/Doc1.3/Windows.html#Windows_python

4. build manually using src/swig/python/build as a guide

need to add "-L$PYTHON_LIB -lpython27"
Looking at http://www.swig.org/Doc1.3/Windows.html#Windows_python, we see that $PYTHON_LIB is the path to the python library. The -L option is supposed to tell the linker which directory to find libraries in.

I believe -l$PYTHON_LIB would work. Alternatively, PYTHON_LIBDIR=D:\python21\libs, and -L$PYTHON_LIBDIR -lpython21, changing version numbers as appropriate.

c0d3d 08-18-2012 05:55 PM

Since compiling MLT has been very difficult for me, as a beginner, I am trying a new toolkit, SFML. I will see how that goes.
There are a lot of programming skills I am lacking, also, so I'm giving up for now.
Thank you for all the help you have given me.

Sincerely,
c0d3d


All times are GMT -5. The time now is 09:37 AM.