LAME (http://lame.sourceforge.net/) è una libreria scritta in linguaggio c. Può convertire file audio PCM in file MP3. Lo uso per convertire file audio in file MP3 su iPhone. I file audio PCM sorgente vengono registrati dal microfono.Come posso compilare lame come libreria statica (.a) per armv6 e armv7 di iPhone?
Per includere LAME nel mio progetto XCode, ho bisogno di compilare LAME a 3 librerie statiche (.a), per i386 (IOS Simulator), armv6 e armv7.
Dopo molte ricerche, ho eseguito correttamente una libreria statica per la versione i368 (iOS Simulator). Ecco i comandi:
./configure \
CFLAGS="-isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk" \
CC="/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc -arch i386" \
--prefix=/Volumes/Data/test/i386 \
--host="arm-apple-darwin9"
make && make install
Il problema è che non riesco a compilare per armv6 e armv7. Ho provato questi comandi ma segnala un errore. C'è qualcuno ha soluzioni?
./configure \
CFLAGS="-isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk" \
CC="/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc -arch armv6" \
--prefix=/Volumes/Data/test/arm6 \
--host="arm-apple-darwin9"
make && make install
L'errore è:
console.c:25:21: error: curses.h: No such file or directory
console.c:27:20: error: term.h: No such file or directory
console.c: In function ‘get_termcap_string’:
console.c:92: warning: implicit declaration of function ‘tgetstr’
console.c:92: warning: assignment makes pointer from integer without a cast
console.c: In function ‘get_termcap_number’:
console.c:102: warning: implicit declaration of function ‘tgetnum’
console.c: In function ‘apply_termcap_settings’:
console.c:115: warning: implicit declaration of function ‘tgetent’
make[2]: *** [console.o] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
Quando installo ncurses, ha segnalato questo:
../curses.h:60:25: error: ncurses_dll.h: No such file or directory
In file included from console.c:25:
../curses.h:250: warning: return type defaults to ‘int’
../curses.h: In function ‘NCURSES_EXPORT_VAR’:
../curses.h:250: error: expected declaration specifiers before ‘acs_map’
../curses.h:340: error: storage class specified for parameter ‘SCREEN’
../curses.h:341: error: storage class specified for parameter ‘WINDOW’
../curses.h:343: error: storage class specified for parameter ‘attr_t’
../curses.h:388: warning: empty declaration
../curses.h:401: error: expected specifier-qualifier-list before ‘attr_t’
../curses.h:443: warning: empty declaration
../curses.h:542: error: storage class specified for parameter ‘NCURSES_OUTC’
../curses.h:551: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘addch’
../curses.h:552: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘addchnstr’
../curses.h:553: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘addchstr’
../curses.h:554: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘addnstr’
C'è qualcuno mi può dare un modo per compilare LAME alla libreria statica (. a) per armv6 e armv7?
Uomo, la tua risposta è un risparmiatore di vita :))) Grazie mille! – Anton
@mcrute Sto usando questo script esatto tranne che ho cambiato la versione sdk alla 6.0 e ottengo il seguente errore alla fine: lipo: build/libmp3lame-armv6.a e build/libmp3lame-armv7.avere le stesse architetture (armv7) e non può essere nello stesso file di output grasso – JonathanC
@mcrute notare anche che per supportare iPhone5 è necessario aggiungere PLATFORM = "armv7s" build_lame – JonathanC