Error:undefined reference to `_avcodec_init' ==>OK

Microsoft Windows specific usage questions
Forum rules
Please post only Windows specific questions in this forum category. If you don't know where to post, please read the different forums' rules. Thanks.
gg940231
Blank Cone
Blank Cone
Posts: 34
Joined: 03 Mar 2009 09:53

Error:undefined reference to `_avcodec_init' ==>OK

Postby gg940231 » 05 Jun 2009 09:59

Ubuntu 9.04 + mingw + vlc099a + contrib-20090219-win32-bin-gcc-4.2.1-sjlj-runtime-3.13-only.tar.bz2 + WINXP
1.
sudo apt-get install apt-file mingw32 mingw32-binutils ming32-runtime libgnutls-dev libgcrypt-dev libtool autoconf libdvdread-dev tofrodos build-essential subversion
2.
ln -s /usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/libgcc.a /usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/libgcc_s.a
3.
ln -s /usr/win32/include/dvdread /usr/win32/include/libdvdread
4.
tar jxvf vlc-0.9.9a.tar.bz2 -C /home/vlc
5.
tar jxvf contrib-20090219-win32-bin-gcc-4.2.1-sjlj-runtime-3.13-only.tar.bz2 -C /
6.
sudo bootstrap
7.
sudo sh configure-vlc01.sh
{
export PATH=/usr/win32:/usr/win32/bin:/usr/win32/include:/usr/win32/lib:$PATH \
export CONTRIBS=/usr/win32 \
export PKG_CONFIG_LIBDIR=/usr/win32/lib/pkgconfig \
CPPFLAGS="-I/usr/win32/include -I/usr/win32/include/ebml" CXXCPP=i586-mingw32msvc-cpp \
LDFLAGS="-L/usr/win32/lib" \
CC=i586-mingw32msvc-gcc CXX=i586-mingw32msvc-g++
./configure --host=i586-mingw32msvc --build=i386-linux \
--disable-gtk \
--enable-nls --enable-sdl --with-sdl-config-path=/usr/win32/bin \
--enable-ffmpeg --with-ffmpeg-mp3lame --with-ffmpeg-faac \
--with-ffmpeg-zlib --enable-faad --enable-flac --enable-theora \
--with-wx-config-path=/usr/win32/bin \
--with-freetype-config-path=/usr/win32/bin \
--with-fribidi-config-path=/usr/win32/bin \
--with-libgcrypt-prefix=/usr/win32 \
--enable-live555 --with-live555-tree=/usr/win32/live.com \
--enable-caca --with-caca-config-path=/usr/win32/bin \
--with-xml2-config-path=/usr/win32/bin \
--with-dvdnav-config-path=/usr/win32/bin \
--disable-cddax --disable-vcdx --enable-goom \
--enable-twolame --enable-dvdread \
--with-dvdread=/usr/win32 \
--with-dvdread-tree=/usr/win32 \
--disable-zvbi \
--enable-release --enable-activex

}
8.
sudo make
9.
sudo make package-win32-base
10.
everthing is ok





11. vlc-0.9.9a/extras/contrib/
bootstrap
mkdir lib include
12. vlc-0.9.9a/extras/contrib/src
make .ffmpeg ==>OK (modify some error "undefine")
13.
cp -a vlc-0.9.9a/extras/contrib/lib/* ==> /usr/win32/lib
cp -a vlc-0.9.9a/extras/contrib/include/* ==> /usr/win32/include
14. vlc-0.9.9a/
make

ERROR
..................................
/bin/bash ../../../libtool --tag=CC --mode=link i586-mingw32msvc-gcc -std=gnu99 `top_builddir="../../.." ../../../vlc-config --cflags plugin libavcodec_plugin.la` -mms-bitfields -Wall -Wextra -Wsign-compare -Wundef -Wpointer-arith -Wbad-function-cast -Wcast-align -Wwrite-strings -Wmissing-prototypes -Wvolatile-register-var -rpath '/usr/local/lib/vlc/codec' -avoid-version -module -no-undefined -export-symbol-regex ^vlc_entry -shrext .dll `top_builddir="../../.." ../../../vlc-config --ldflags plugin libavcodec_plugin.la` -L/usr/win32/lib -o libavcodec_plugin.la libavcodec_plugin_la-avcodec.lo libavcodec_plugin_la-video.lo libavcodec_plugin_la-audio.lo libavcodec_plugin_la-deinterlace.lo libavcodec_plugin_la-encoder.lo `top_builddir="../../.." ../../../vlc-config -libs plugin libavcodec_plugin.la` ../../../src/libvlccore.la -lmingw32
libtool: link: rm -fr .libs/libavcodec_plugin.dll .libs/libavcodec_plugin.dll.a .libs/libavcodec_plugin.la .libs/libavcodec_plugin.lai
libtool: link: i586-mingw32msvc-gcc -std=gnu99 -shared .libs/libavcodec_plugin_la-avcodec.o .libs/libavcodec_plugin_la-video.o .libs/libavcodec_plugin_la-audio.o .libs/libavcodec_plugin_la-deinterlace.o .libs/libavcodec_plugin_la-encoder.o -L/usr/win32/lib -lavcodec -lz /home/sa3003/guilin/vlc/ubuntu_mingw_vlc/vlc-0.9.9a/extras/contrib/lib/libfaac.a -L/home/sa3003/guilin/vlc/ubuntu_mingw_vlc/vlc-0.9.9a/extras/contrib/lib /home/sa3003/guilin/vlc/ubuntu_mingw_vlc/vlc-0.9.9a/extras/contrib/lib/libmp3lame.a -lm -lavutil ../../../src/.libs/libvlccore.dll.a -lkernel32 -lws2_32 -lnetapi32 -lwinmm /usr/win32/lib/libiconv.a -lmingw32 -mtune=pentium2 -mms-bitfields -o .libs/libavcodec_plugin.dll -Wl,--enable-auto-image-base -Xlinker --out-implib -Xlinker .libs/libavcodec_plugin.dll.a
Creating library file: .libs/libavcodec_plugin.dll.a.libs/libavcodec_plugin_la-avcodec.o:avcodec.c:(.text+0x47): undefined reference to `_avcodec_init'
.libs/libavcodec_plugin_la-avcodec.o:avcodec.c:(.text+0x4c): undefined reference to `_avcodec_register_all'
.libs/libavcodec_plugin_la-avcodec.o:avcodec.c:(.text+0x58): undefined reference to `_av_log_set_callback'
.libs/libavcodec_plugin_la-avcodec.o:avcodec.c:(.text+0x16e5): undefined reference to `_avcodec_close'
.libs/libavcodec_plugin_la-avcodec.o:avcodec.c:(.text+0x1727): undefined reference to `_av_free'
.libs/libavcodec_plugin_la-avcodec.o:avcodec.c:(.text+0x17ca): undefined reference to `_avcodec_find_decoder'
.libs/libavcodec_plugin_la-avcodec.o:avcodec.c:(.text+0x17d9): undefined reference to `_avcodec_alloc_context'
.libs/libavcodec_plugin_la-video.o:video.c:(.text+0x16): undefined reference to `_av_free'
.libs/libavcodec_plugin_la-video.o:video.c:(.text+0x2b0): undefined reference to `_avcodec_alloc_frame'
.libs/libavcodec_plugin_la-video.o:video.c:(.text+0x6ce): undefined reference to `_avcodec_open'
.libs/libavcodec_plugin_la-video.o:video.c:(.text+0x957): undefined reference to `_avcodec_default_reget_buffer'
.libs/libavcodec_plugin_la-video.o:video.c:(.text+0xc47): undefined reference to `_avcodec_decode_video'
.libs/libavcodec_plugin_la-video.o:video.c:(.text+0xca6): undefined reference to `_avcodec_decode_video'
.libs/libavcodec_plugin_la-video.o:video.c:(.text+0x195d): undefined reference to `_avcodec_align_dimensions'
.libs/libavcodec_plugin_la-video.o:video.c:(.text+0x19cd): undefined reference to `_avcodec_default_get_buffer'
.libs/libavcodec_plugin_la-video.o:video.c:(.text+0x19f0): undefined reference to `_avcodec_default_get_buffer'
.libs/libavcodec_plugin_la-video.o:video.c:(.text+0x243): undefined reference to `_avcodec_default_release_buffer'
.libs/libavcodec_plugin_la-audio.o:audio.c:(.text+0x25b): undefined reference to `_avcodec_open'
.libs/libavcodec_plugin_la-audio.o:audio.c:(.text+0x6e8): undefined reference to `_avcodec_decode_audio2'
.libs/libavcodec_plugin_la-audio.o:audio.c:(.text+0x823): undefined reference to `_avcodec_flush_buffers'
.libs/libavcodec_plugin_la-deinterlace.o:deinterlace.c:(.text+0x24a): undefined reference to `_avpicture_deinterlace'
.libs/libavcodec_plugin_la-encoder.o:encoder.c:(.text+0x80): undefined reference to `_avcodec_encode_audio'
.libs/libavcodec_plugin_la-encoder.o:encoder.c:(.text+0x5c6): undefined reference to `_avcodec_encode_video'
.libs/libavcodec_plugin_la-encoder.o:encoder.c:(.text+0xa83): undefined reference to `_avcodec_find_encoder'
.libs/libavcodec_plugin_la-encoder.o:encoder.c:(.text+0xb04): undefined reference to `_avcodec_alloc_context'
.libs/libavcodec_plugin_la-encoder.o:encoder.c:(.text+0x1049): undefined reference to `_avcodec_open'
.libs/libavcodec_plugin_la-encoder.o:encoder.c:(.text+0x11e2): undefined reference to `_avcodec_open'
.libs/libavcodec_plugin_la-encoder.o:encoder.c:(.text+0x173b): undefined reference to `_av_reduce'
.libs/libavcodec_plugin_la-encoder.o:encoder.c:(.text+0x1789): undefined reference to `_av_reduce'
.libs/libavcodec_plugin_la-encoder.o:encoder.c:(.text+0x2034): undefined reference to `_avcodec_close'
.libs/libavcodec_plugin_la-encoder.o:encoder.c:(.text+0x204c): undefined reference to `_av_free'
collect2: ld returned 1 exit status
Last edited by gg940231 on 15 Jun 2009 03:32, edited 3 times in total.

gg940231
Blank Cone
Blank Cone
Posts: 34
Joined: 03 Mar 2009 09:53

Re: Error:undefined reference to `_avcodec_init'

Postby gg940231 » 08 Jun 2009 05:36

someone help me !!!

Jean-Baptiste Kempf
Site Administrator
Site Administrator
Posts: 37523
Joined: 22 Jul 2005 15:29
VLC version: 4.0.0-git
Operating System: Linux, Windows, Mac
Location: Cone, France
Contact:

Re: Error:undefined reference to `_avcodec_init'

Postby Jean-Baptiste Kempf » 08 Jun 2009 11:06

add the -lavcodec flag to your avcodec lines in vlc-config
Jean-Baptiste Kempf
http://www.jbkempf.com/ - http://www.jbkempf.com/blog/category/Videolan
VLC media player developer, VideoLAN President and Sites administrator
If you want an answer to your question, just be specific and precise. Don't use Private Messages.

gg940231
Blank Cone
Blank Cone
Posts: 34
Joined: 03 Mar 2009 09:53

Re: Error:undefined reference to `_avcodec_init'

Postby gg940231 » 09 Jun 2009 05:35

There is no "_avcodec_init" , but "avcodec_init" .

nm ../lib/libavcodec.a | grep avcodec_init
00000fd0 T avcodec_init


/////////////////////////////////////////
BUT,make .ffmpeg in CYGWIN,is OK,
nm ../lib/libavcodec.a | grep avcodec_init
00001147 T _avcodec_init
Last edited by gg940231 on 11 Jun 2009 04:54, edited 1 time in total.

VLC_help
Mega Cone Master
Mega Cone Master
Posts: 25661
Joined: 13 Sep 2006 14:16

Re: Error:undefined reference to `_avcodec_init'

Postby VLC_help » 09 Jun 2009 18:55

http://gcc.gnu.org/onlinedocs/gnat_ugn_ ... onventions
Calling convention is different if _ is need but missing or vice versa.

gg940231
Blank Cone
Blank Cone
Posts: 34
Joined: 03 Mar 2009 09:53

Re: Error:undefined reference to `_avcodec_init'

Postby gg940231 » 10 Jun 2009 04:57

So , what can I do ?

1)Modify ffmpeg/configure
extern_prefix=_ ==>> add
echo "#define EXTERN_PREFIX \"${extern_prefix}\"" >> $TMPH
2) make .ffmpeg
==> config.h : #define EXTERN_PREFIX "_"
make ok
3)nm ../lib/libavcodec.a | grep avcodec_init
00000fd0 T avcodec_init
Last edited by gg940231 on 11 Jun 2009 04:55, edited 1 time in total.

gg940231
Blank Cone
Blank Cone
Posts: 34
Joined: 03 Mar 2009 09:53

Re: Error:undefined reference to `_avcodec_init'

Postby gg940231 » 10 Jun 2009 09:27

1)
cd extras/contrib
./bootstrap i586-mingw32msvc (Replaces “./bootstrap” with “./bootstrap i586-mingw32msvc” )
2)
cd extras/contrib/src
make .ffmpeg

error::
ERROR: MinGW runtime version must be >= 3.15.


3)
/usr/i586-mingw32msvc/include/_mingw.h
#define __MINGW32_VERSION 3.13
#define __MINGW32_MAJOR_VERSION 3
#define __MINGW32_MINOR_VERSION 13

4)
/usr/i586-mingw32msvc/include/w32api.h
#define __W32API_VERSION 3.10
#define __W32API_MAJOR_VERSION 3
#define __W32API_MINOR_VERSION 10

5)
http://wiki.videolan.org/Win32Compile
Debian/Ubuntu users can apt-get install mingw32 mingw32-binutils,
however building FFmpeg now requires mingw32-runtime >= 3.15 and w32api >= 3.13
so these will have to be updated manually.

6)
What to do ?
Download File not found . google/yahoo
Last edited by gg940231 on 11 Jun 2009 04:55, edited 1 time in total.

xtophe
Big Cone-huna
Big Cone-huna
Posts: 1209
Joined: 24 Nov 2003 10:12
Location: Bristol, England

Re: Error:undefined reference to `_avcodec_init'

Postby xtophe » 10 Jun 2009 12:37

What to do ?
Writing with a reasonable font size.





And trying http://people.videolan.org/~xtophe/debian/mingw/
Xtophe

gg940231
Blank Cone
Blank Cone
Posts: 34
Joined: 03 Mar 2009 09:53

Re: Error:undefined reference to `_avcodec_init'

Postby gg940231 » 11 Jun 2009 04:58

Thanks
And trying http://people.videolan.org/~xtophe/debian/mingw/

1)
sudo dpkg -i /var/cache/apt/archives/mingw32-runtime_3.15.2-0videolan1_all.deb

2)
cd extras/contrib
./bootstrap i586-mingw32msvc

3)
cd extras/contrib/src
make .ffmpeg
===> OK

4)
cd vlc-0.9.9a
make ==>ok
make package-win32-base ==>ok


Return to “VLC media player for Windows Troubleshooting”

Who is online

Users browsing this forum: No registered users and 69 guests