2016-03-24 14 views
0

Ich baue statische FFmpeg-Bibliotheken für Windows 64 Bit. Konfigurieren Sie wie folgt:Erstellen von statischen FFmpeg-Bibliotheken für Windows 64-Bit-Anwendung

./configure --disable-everything --enable-static --disable-shared --enable-memalign-hack --disable-debug --enable-stripping --enable-protocol=file --enable-yasm --enable-decoder=mp3,mpeg4,h264 --enable-muxer=mp4,avi --enable-encoder=mjpeg.

Die Anwendung ist in Visual Studio 2012 mit /MT Option gebaut und verbunden mit libavformat.a, libavcodec.a usw. Ich verbinde es auch mit libmingwex.a, libgcc.a.

Der Linker schlägt mit den folgenden Fehler: #define HAVE_NANOSLEEP 1 und #define HAVE_CLOCK_GETTIME 1:

6>libavformat.a(file.o) : error LNK2001: unresolved external symbol __imp__wrmdir 
6>libavformat.a(file.o) : error LNK2001: unresolved external symbol __imp__rmdir 
6>libavformat.a(file.o) : error LNK2001: unresolved external symbol __imp__wunlink 
6>libavformat.a(file.o) : error LNK2001: unresolved external symbol __imp__unlink 
6>libavutil.a(time.o) : error LNK2001: unresolved external symbol clock_gettime 
6>libavutil.a(time.o) : error LNK2001: unresolved external symbol nanosleep 

Was die 2 letztgenannten Fehler, als ich sie bei manuell definieren Makros in config.h lösen können.

Die Frage ist, wie die ehemaligen 4 lösen. Diese aussehen wie Funktionen aus einer DLL importiert (__imp Präfix), aber meine Anwendung ist mit /MT gebaut, und ich möchte keine dynamischen Abhängigkeiten in FFmpeg. Wie man sie los wird?

Ich habe versucht, FFmpeg mit --extra-cflags="-static" zu konfigurieren, aber es hilft nicht.

Antwort

0

Es stellt sich heraus, dass es jetzt möglich ist, build FFmpeg with Visual Studio tool chain, nativ. Somit sind alle MinGW-bezogenen Probleme nicht mehr relevant.

Für Versionen vor 2013, die keine ordentliche Unterstützung von C99 haben, ist es erforderlich, c99wrap.exe, c99conv.exe und inttypes.h herunterzuladen. Öffnen Sie dann die native x64-Eingabeaufforderung von Visual Studio (damit sich die VC-Toolkette und die Header im Suchpfad befinden), und rufen Sie ./configure --toolchain=msvc und make auf.

Verwandte Themen