[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