[FFmpeg-user] linker errors when compiling using MSVC und disable-optimizations

Bernhard Döbler programmer at bardware.de
Thu Jan 12 00:47:01 EET 2017


Hi,

I compile ffmpeg in an msys2 environment using Microsoft compiler. I 
wanted to step through ffmpeg in Visual Studio and noticed, not all 
variables were availablie in the debugger because of optimizations.

I found out about the --disable-optimizations switch for configure and 
called

./configure \
--toolchain=msvc --arch=x86_64 \
--host-cc=gcc \
--host-ld=gcc \
--prefix=/depsx86_64_D \
--extra-cxxflags='-I"/depsx86_64_D/include"' \
--extra-cflags='-I"/depsx86_64_D/include"' \
--extra-ldflags='-libpath:"/depsx86_64_D/lib"' \
--disable-ffplay \
--disable-ffserver \
--disable-optimizations \
--enable-version3 \
--enable-libmp3lame \
--disable-everything \
--disable-filters \
--enable-filter=scale,aresample,showspectrumpic \
--enable-parser=png,ac3,flac,mpegaudio \
--enable-protocol=file,pipe,md5,data \
--enable-muxer=flac,mp3,mov,mjpeg,wav,image2,gif,ipod,ffmetadata,crc,framecrc,framemd5,md5,null 
\
--enable-demuxer=flac,mp3,mov,mjpeg,wav,image2,gif \
--enable-decoder=aac,flac,alac,mp3,mjpeg,png,pcm* \
--enable-encoder=aac,flac,alac,libmp3lame,mjpeg,png,pcm*

This did fine

I called make V=1

This eventually resulted in

./compat/windows/mslink -libpath:libavcodec -libpath:libavdevice 
-libpath:libavfilter -libpath:libavformat -libpath:libavresample 
-libpath:libavutil -libpath:libpostproc -libpath:libswscale 
-libpath:libswresample -libpath:/depsx86_64_D/lib -nologo -debug 
-out:ffmpeg_g.exe cmdutils.o ffmpeg_opt.o ffmpeg_filter.o ffmpeg.o  
ffmpeg_cuvid.o ffmpeg_dxva2.o libavdevice.a libavfilter.a libavformat.a 
libavcodec.a libswresample.a libswscale.a libavutil.a user32.lib   
secur32.lib mp3lame.lib zlib.lib psapi.lib advapi32.lib shell32.lib  
ole32.lib
LINK : ffmpeg_g.exe wurde nicht gefunden oder beim letzten 
inkrementellen Linkvorgang nicht erstellt; vollst▒ndiger Link wird 
durchgef▒hrt.
cmdutils.o : error LNK2019: Verweis auf nicht aufgel▒stes externes 
Symbol "avresample_version" in Funktion "print_all_libs_info".
cmdutils.o : error LNK2019: Verweis auf nicht aufgel▒stes externes 
Symbol "avresample_configuration" in Funktion "print_all_libs_info".
cmdutils.o : error LNK2019: Verweis auf nicht aufgel▒stes externes 
Symbol "postproc_version" in Funktion "print_all_libs_info".
cmdutils.o : error LNK2019: Verweis auf nicht aufgel▒stes externes 
Symbol "postproc_configuration" in Funktion "print_all_libs_info".
libavdevice.a(alldevices.o) : error LNK2001: Nicht aufgel▒stes externes 
Symbol "ff_alsa_muxer".
libavdevice.a(alldevices.o) : error LNK2001: Nicht aufgel▒stes externes 
Symbol "ff_alsa_demuxer".
libavdevice.a(alldevices.o) : error LNK2001: Nicht aufgel▒stes externes 
Symbol "ff_avfoundation_demuxer".
libavdevice.a(alldevices.o) : error LNK2001: Nicht aufgel▒stes externes 
Symbol "ff_bktr_demuxer".


and literally hundreds of further linker errors.

When I leave "--disable-optimizations" out it compiles fine.

Can you advise?


Best,

Bernhard



More information about the ffmpeg-user mailing list