make: cc: Command not found

Status
Für weitere Antworten geschlossen.

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.575
Punkte für Reaktionen
1.404
Punkte
234
Hallo zusammen,

auf zum nächsten Problem.
Für synOTR muss ich avcut kompilieren (avcut gibt es hier: https://github.com/anyc/avcut).
Avcut setzt auf ffmpeg, x264 und etwas avcut-Code. Ich clone also avcut von Github und kompiliere in entsprechenden Unterordnern x264 und ffmpeg damit die Pfade relativ stimmen. Das funktioniert alles, bis auf avcut selbst im letzten Schritt.

Kompilieren auf der DS (DS214 für ARMv7):
Im letzten Schritt (siehe Code unten) kommt der Fehler: "make: cc: Command not found".
Ich habe es mit entware-opkg und optware-ng / ipkg versucht. make und gcc sind jeweils installiert und auf im Path aufrufbar.

Habt ihr eine Idee?

Alternativ habe ich es mit Crosscompiling in einer Lubuntu-VM versucht:
Auch hier geht es nach anfänglichen Schwierigkeiten mit x264 und ffmpeg. Zum Crosscompilieren brauche ich ja eine ./configure Datei, die ich bei avcut aber nicht habe. Da komme ich also auch nicht weiter.

(Das meiste, was ich vom kompilieren weiß, habe ich erst hier gelernt - also so gut wie nichts …:rolleyes:)

Rich (BBCode):
# Code vom Kompilieren auf der DS (stimmt hier nur im groben Zügen):
# ==> x264:
[cd >avcut_static-DIR<]
wget http://download.videolan.org/pub/x264/snapshots/last_x264.tar.bz2
tar xjvf last_x264.tar.bz2
cd x264 # x264-snapshot* umbenannt nach /x264
PATH="/home/stephan/DEV/avcut_static/x264/bin:$PATH" ./configure --prefix="/volume1/homes/admin/script/COMPILE/avcut_static/ffmpeg" --bindir="/volume1/homes/admin/script/COMPILE/avcut_static/x264/bin" --disable-static --disable-opencl
PATH="/volume1/homes/admin/script/COMPILE/avcut_static/x264/bin:$PATH" make
# make install
# make distclean

# ==> ffmpeg:
git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg
cd ffmpeg/
git checkout n3.1.2
./configure --disable-programs --disable-hwaccels --disable-indevs --disable-outdevs --disable-devices --enable-static --disable-zlib --disable-xlib --disable-sdl --disable-libxcb --disable-bzlib --disable-libxcb-shm --disable-libxcb-xfixes --disable-libxcb-shape --disable-iconv --enable-gpl --enable-libx264 --disable-encoder=tiff --disable-decoder=tiff --extra-cflags=-I/volume1/homes/admin/script/COMPILE/avcut_static/x264/ --extra-ldflags=-L/volume1/homes/admin/script/COMPILE/avcut_static/x264/
make clean
make -j4
cd ..

# ==> avcut:
LDLIBS="ffmpeg/libavformat/libavformat.a ffmpeg/libavcodec/libavcodec.a ffmpeg/libavutil/libavutil.a ffmpeg/libswresample/libswresample.a x264/libx264.a -lpthread -lm -static" make -Iffmpeg -e

So sieht es bei der Ausführung (letzter Schritt) auf der DS aus:
Rich (BBCode):
admin@NAS-MHD:/volume1/homes/admin/script/COMPILE/avcut$ LDLIBS="ffmpeg/libavformat/libavformat.a ffmpeg/libavcodec/libavcodec.a ffmpeg/libavutil/libavutil.a ffmpeg/libswresample/libswresample.a x264/libx264.a -lpthread -lm -static" make -Iffmpeg -e
cc -Wall -DAVCUT_VERSION=\"0.2\"    avcut.c  ffmpeg/libavformat/libavformat.a ffmpeg/libavcodec/libavcodec.a ffmpeg/libavutil/libavutil.a ffmpeg/libswresample/libswresample.a x264/libx264.a -lpthread -lm -static -o avcut
make: cc: Command not found
make: *** [<builtin>: avcut] Error 127
admin@NAS-MHD:/volume1/homes/admin/script/COMPILE/avcut$
 

hvkls

Benutzer
Mitglied seit
23. Dez 2012
Beiträge
463
Punkte für Reaktionen
0
Punkte
22
Führ doch mal

export CC=gcc

vor den anderen Kommandos aus.
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.575
Punkte für Reaktionen
1.404
Punkte
234
Sooooo - alles neu kompiliert. Dat dauert :rolleyes:

Die Fehlermeldung ist erst einmal weg.
Schön!
Danke :)
Jetzt mekert er, dass eine gewisse Datei (libavformat/avformat.h) nicht gefunden wird. Sie ist aber da! (/volume1/homes/admin/script/COMPILE/avcut/ffmpeg/libavformat/avformat.h)

Rich (BBCode):
admin@NAS-MHD:/volume1/homes/admin/script/COMPILE/avcut$ LDLIBS="ffmpeg/libavformat/libavformat.a ffmpeg/libavcodec/libavcodec.a ffmpeg/libavutil/libavutil.a ffmpeg/libswresample/libswresample.a x264/libx264.a -lpthread -lm -static" make -Iffmpeg -e
gcc -Wall -DAVCUT_VERSION=\"0.2\"    avcut.c  ffmpeg/libavformat/libavformat.a ffmpeg/libavcodec/libavcodec.a ffmpeg/libavutil/libavutil.a ffmpeg/libswresample/libswresample.a x264/libx264.a -lpthread -lm -static -o avcut
avcut.c:27:34: fatal error: libavformat/avformat.h: No such file or directory
compilation terminated.
make: *** [<builtin>: avcut] Error 1
admin@NAS-MHD:/volume1/homes/admin/script/COMPILE/avcut$ 
 

hvkls

Benutzer
Mitglied seit
23. Dez 2012
Beiträge
463
Punkte für Reaktionen
0
Punkte
22
Die Ort, wo nach den "headers" bzw. "includes" gesucht wird, kann durch $CPPFLAGS kontrolliert werden.

export CPPFLAGS='-I ffmpeg/libavformat -I. -I/usr/include' # usw. mit -I/path/to/headers

"Libraries" kann man per $LDFLAGS verfügbar machen.

Hier mal zwei Beispiele, die dir nützen dürften, die du jedoch anpassen müsstest:

export LDFLAGS='-L/opt/sdk/lib -L/var/sdk/lib -L/opt/lib -L/usr/local/lib -L/usr/lib -L/var/lib -L/lib -L. -L/opt/lib -L/opt/local/lib'

export CPPFLAGS='-I/opt/sdk/include -I/var/sdk/include -I/var/include -I/usr/include -I/usr/local/include -I/
var/include -I/var -I/usr/include/gnutls -I/usr/lib/ssl/include -I/usr/include/ncursesw -I/usr/include
/glib-2.0 -I/usr/lib/glib-2.0/include -I/var/stash/include -I. -I/opt/include -I/opt/local/include'
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.575
Punkte für Reaktionen
1.404
Punkte
234
Vielen Dank auch für diesen Tipp.

Da kommt man ja vom Hundertsten zum Tausendsten …
In einer ruhigen Minute werde ich mir das noch mal näher ansehen und der Sache auf den Zahn fühlen.

Zuletzt sah es jetzt so aus (ich verstehe nur Bahnhof):
Rich (BBCode):
admin@NAS-MHD:/volume1/homes/admin/script/COMPILE/avcut$ export CPPFLAGS='-I ffmpeg/libavutil -I ffmpeg/libavcodec -I ffmpeg/libavformat'
admin@NAS-MHD:/volume1/homes/admin/script/COMPILE/avcut$ LDLIBS="ffmpeg/libavformat/libavformat.a ffmpeg/libavcodec/libavcodec.a ffmpeg/libavutil/libavutil.a ffmpeg/libswresample/libswresample.a x264/libx264.a -lpthread -lm -static" make -Iffmpeg -e
gcc -Wall -DAVCUT_VERSION=\"0.2\" -I ffmpeg/libavutil -I ffmpeg/libavcodec -I ffmpeg/libavformat   avcut.c  ffmpeg/libavformat/libavformat.a ffmpeg/libavcodec/libavcodec.a ffmpeg/libavutil/libavutil.a ffmpeg/libswresample/libswresample.a x264/libx264.a -lpthread -lm -static -o avcut
In file included from /opt/include/sys/stat.h:104:0,
                 from avcut.c:25:
/opt/include/bits/stat.h:72:21: error: field 'st_atim' has incomplete type
     struct timespec st_atim;  /* Time of last access.  */
                     ^
/opt/include/bits/stat.h:73:21: error: field 'st_mtim' has incomplete type
     struct timespec st_mtim;  /* Time of last modification.  */
                     ^
/opt/include/bits/stat.h:74:21: error: field 'st_ctim' has incomplete type
     struct timespec st_ctim;  /* Time of last status change.  */
                     ^
In file included from avcut.c:25:0:
/opt/include/sys/stat.h:364:31: error: array type has incomplete element type 'struct timespec'
         const struct timespec __times[2],
                               ^
/opt/include/sys/stat.h:371:54: error: array type has incomplete element type 'struct timespec'
 extern int futimens (int __fd, const struct timespec __times[2]) __THROW;
                                                      ^
avcut.c:27:34: fatal error: libavformat/avformat.h: No such file or directory
compilation terminated.
make: *** [<builtin>: avcut] Error 1
admin@NAS-MHD:/volume1/homes/admin/script/COMPILE/avcut$
 

hvkls

Benutzer
Mitglied seit
23. Dez 2012
Beiträge
463
Punkte für Reaktionen
0
Punkte
22
Gib zur Sicherheit mal den vollen Pfad zu den entsprechenden Verzeichnissen an.

Alternativ zu export: Hast du einen Makefile? Such darin mal nach CPPFLAGS und LDFLAGS und ergaenz dort die Verzeichnisnamen (-I /path/to/headersdirectory bzw. -L /path/to/librarydirectory).
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.575
Punkte für Reaktionen
1.404
Punkte
234
Danke für deine Geduld, aber ich komme hier einfach nicht weiter. Mir fehlt einfach der Einblick in die Materie :confused:

Das ist das makefile (https://github.com/anyc/avcut/blob/master/Makefile):
- Arbeitspfad (avcut.c, Makefile …): /volume1/homes/admin/script/COMPILE/avcut/
- ffmpeg-Buildordner: /volume1/homes/admin/script/COMPILE/avcut/ffmpeg/
- x264-Buildordner: /volume1/homes/admin/script/COMPILE/avcut/x264/

Rich (BBCode):
APP=avcut
AVCUT_VERSION=0.2

CFLAGS+=-Wall -DAVCUT_VERSION=\"$(AVCUT_VERSION)\"
LDLIBS=-lavcodec -lavformat -lavutil

## enable support for libav (EXPERIMENTAL)
#CFLAGS=-DUSING_LIBAV

TAR?=$(shell which tar)
ARCH?=$(shell gcc -dumpmachine | cut -d "-" -f1)
PREFIX?=/usr

.PHONY: clean install

all: $(APP)

$(APP): avcut.c

clean:
	rm -f *.o $(APP)

install: $(APP)
	mkdir -p $(DESTDIR)$(PREFIX)/bin
	install -m 755 avcut $(DESTDIR)$(PREFIX)/bin/
	install -m 644 README.md $(DESTDIR)$(PREFIX)/share/doc/$(APP)/

package: $(APP)
	$(TAR) -czf avcut-$(AVCUT_VERSION)-$(ARCH).tar.gz avcut README.md LICENSE

debug: CFLAGS+=-g -DDEBUG
debug: all
 

hvkls

Benutzer
Mitglied seit
23. Dez 2012
Beiträge
463
Punkte für Reaktionen
0
Punkte
22
Ich habe zwar auch keine Routine darin und nutze deine Software selbst gar nicht, möchte dir aber gern helfen, weil ich toll finde, wie du dich engagierst. :) Wenn du nichts gegen ein bisschen herumprobieren hast, versuch als Makefile:

Rich (BBCode):
APP=avcut
AVCUT_VERSION=0.2

CFLAGS+=-Wall -DAVCUT_VERSION=\"$(AVCUT_VERSION)\"
LDLIBS=-lavcodec -lavformat -lavutil

# neu
CPPFLAGS+=-I /volume1/homes/admin/script/COMPILE/avcut/ffmpeg -I /volume1/homes/admin/script/COMPILE/avcut/ffmpeg/libavformat -I /volume1/homes/admin/script/COMPILE/avcut/ffmpeg/libavutil -I /volume1/homes/admin/script/COMPILE/avcut/ffmpeg/libavcodec
# neu
LDFLAGS+=-L /volume1/homes/admin/script/COMPILE/avcut/ffmpeg -L /volume1/homes/admin/script/COMPILE/avcut/ffmpeg/libavformat -L /volume1/homes/admin/script/COMPILE/avcut/ffmpeg/libavutil -L /volume1/homes/admin/script/COMPILE/avcut/ffmpeg/libavcodec

## enable support for libav (EXPERIMENTAL)
#CFLAGS=-DUSING_LIBAV

TAR?=$(shell which tar)
ARCH?=$(shell gcc -dumpmachine | cut -d "-" -f1)
PREFIX?=/usr


.PHONY: clean install

all: $(APP)

$(APP): avcut.c

clean:
	rm -f *.o $(APP)

install: $(APP)
	mkdir -p $(DESTDIR)$(PREFIX)/bin
	install -m 755 avcut $(DESTDIR)$(PREFIX)/bin/
	install -m 644 README.md $(DESTDIR)$(PREFIX)/share/doc/$(APP)/

package: $(APP)
	$(TAR) -czf avcut-$(AVCUT_VERSION)-$(ARCH).tar.gz avcut README.md LICENSE

debug: CFLAGS+=-g -DDEBUG
debug: all
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat