FAAC-1.28 kompilieren

Wenn man versucht FAAC zu kompilieren bekommt man folgenden Fehler:

In file included from mp4common.h:29,
from atom_avc1.cpp:22:
mpeg4ip.h:126: error: new declaration ‚char* strcasestr(const char*, const char*)‘
/usr/include/string.h:367: error: ambiguates old declaration ‚const char* strcasestr(const char*, const char*)‘
In file included from mp4common.h:29,
from 3gp.cpp:28:
mpeg4ip.h:126: error: new declaration ‚char* strcasestr(const char*, const char*)‘
/usr/include/string.h:367: error: ambiguates old declaration ‚const char* strcasestr(const char*, const char*)‘
In file included from mp4common.h:29,
from atom_amr.cpp:28:
mpeg4ip.h:126: error: new declaration ‚char* strcasestr(const char*, const char*)‘
/usr/include/string.h:367: error: ambiguates old declaration ‚const char* strcasestr(const char*, const char*)‘
atom_avc1.cpp: In constructor ‚MP4Avc1Atom::MP4Avc1Atom()‘:
atom_avc1.cpp:27: warning: deprecated conversion from string constant to ‚char*‘
atom_avc1.cpp:30: warning: deprecated conversion from string constant to ‚char*‘
atom_avc1.cpp:32: warning: deprecated conversion from string constant to ‚char*‘
atom_avc1.cpp:35: warning: deprecated conversion from string constant to ‚char*‘
atom_avc1.cpp:37: warning: deprecated conversion from string constant to ‚char*‘
atom_avc1.cpp:39: warning: deprecated conversion from string constant to ‚char*‘
atom_avc1.cpp:42: warning: deprecated conversion from string constant to ‚char*‘
atom_avc1.cpp:47: warning: deprecated conversion from string constant to ‚char*‘
make[3]: *** [atom_avc1.o] Error 1
make[3]: *** Waiting for unfinished jobs….
make[3]: *** [3gp.o] Error 1
atom_amr.cpp: In constructor ‚MP4AmrAtom::MP4AmrAtom(const char*)‘:
atom_amr.cpp:33: warning: deprecated conversion from string constant to ‚char*‘
atom_amr.cpp:36: warning: deprecated conversion from string constant to ‚char*‘
atom_amr.cpp:38: warning: deprecated conversion from string constant to ‚char*‘
atom_amr.cpp:41: warning: deprecated conversion from string constant to ‚char*‘
atom_amr.cpp:43: warning: deprecated conversion from string constant to ‚char*‘
make[3]: *** [atom_amr.o] Error 1
make[3]: Leaving directory `/root/software/encoding/faac-1.28/common/mp4v2′
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/root/software/encoding/faac-1.28/common‘
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/root/software/encoding/faac-1.28′
make: *** [all] Error 2

Es geht also schlicht nicht, weil es eine Inkompatibilität zwischen Code und Compiler gibt.

Jetzt die gute Nachricht! Es gibt einen Patch.
Diesen findet man hier:
http://www.linuxfromscratch.org/blfs/view/svn/multimedia/faac.html
oder als direkt Link:
http://www.linuxfromscratch.org/patches/blfs/svn/faac-1.28-glibc_fixes-1.patch

Ausführen kann man den Patch folgendermaßen (Im Verzeichnis von faac ausführen):
patch -Np1 -i faac-1.28-glibc_fixes-1.patch

Beim kompilieren werden zwar trotzdem eine Menge Warnings rausgehauen, trotzdem läuft der Codec danach einwandfrei und kann produktiv eingesetzt werden.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.