ProgrammingThis forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
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?
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.
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!
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
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:
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.
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
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
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?
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.
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:
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)...
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
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.
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.
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.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.