# ffmpeg lässt sich nicht emergen

## dsiggi

Hi,

ich habe mir vor kurzem einen Odroid C1+ gekauft. Das ist ein kleiner Einplatinencomputer auf ARM-Basis.

Darauf habe ich gentoo laufen. Läuft auch soweit alles super. Nun wollte ich aber ffmpeg emegen.

```

armv7a-hardfloat-linux-gnueabi-gcc -I. -I/var/tmp/portage/media-video/ffmpeg-2.6.3/work/ffmpeg-2.6.3/ -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -DZLIB_CONST -DHAVE_AV_CONFIG_H -O3 -pipe -march=armv7-a -mtune=cortex-a5 -mfpu=vfpv3-d16 -mfloat-abi=hard   -march=armv7-a -std=c99 -fomit-frame-pointer -marm -fPIC -pthread -Wdeclaration-after-statement -Wall -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wwrite-strings -Wtype-limits -Wundef -Wmissing-prototypes -Wno-pointer-to-int-cast -Wstrict-prototypes -Wempty-body -Wno-parentheses -Wno-switch -Wno-format-zero-length -Wno-pointer-sign  -fno-math-errno -fno-signed-zeros -fno-tree-vectorize -Werror=format-security -Werror=implicit-function-declaration -Werror=missing-prototypes -Werror=return-type -Werror=vla -Wformat -Wno-maybe-uninitialized  -MMD -MF libswscale/yuv2rgb.d -MT libswscale/yuv2rgb.o -c -o libswscale/yuv2rgb.o /var/tmp/portage/media-video/ffmpeg-2.6.3/work/ffmpeg-2.6.3/libswscale/yuv2rgb.c

/var/tmp/portage/media-video/ffmpeg-2.6.3/work/ffmpeg-2.6.3/libswscale/utils.c:37:21: fatal error: windows.h: No such file or directory

 #include <windows.h>

                     ^

compilation terminated.

distcc[8094] ERROR: compile /var/tmp/portage/media-video/ffmpeg-2.6.3/work/ffmpeg-2.6.3/libswscale/utils.c on localhost failed

/var/tmp/portage/media-video/ffmpeg-2.6.3/work/ffmpeg-2.6.3/common.mak:57: recipe for target 'libswscale/utils.o' failed

make: *** [libswscale/utils.o] Error 1

```

windows.h wird wohl nicht gefunden. Aber ich hab keine Ahnung zu welchem Paket es gehört

Ich hoffe ihr könnt mir helfen.

Gruß,

dsiggi

----------

## Helmering

 *dsiggi wrote:*   

> windows.h wird wohl nicht gefunden. Aber ich hab keine Ahnung zu welchem Paket es gehört
> 
> Ich hoffe ihr könnt mir helfen.

 

Auf die schnelle..

```
titanio var # equery b windows.h

 * Searching for windows.h ... 

app-cdr/cdrtools-3.01_alpha17 (/usr/include/schily/windows.h)

dev-libs/boost-1.56.0-r1 (/usr/include/boost/predef/os/windows.h)
```

Gruss, Ralf

----------

## mv

Für solche Fragen gibt es http://www.portagefilelist.de/

Heißere Kandidaten sind demnach vielleicht die Pakete llvm (also wohl der clang compiler) sowie die C++-quasi-Standard-BIbliothek boost.

"Natürlich" enthält auch wine ein "windows.h"

----------

## firefly

Wobei an dieser stelle die windows.h eine Datei des Windows SDK ist -> Nicht unter linux zu gebrauchen.

Da ist was komplett schiefgelaufen, wenn hier ein Windows header verwendet werden soll unter linux

----------

## franzf

```
#if HAVE_VIRTUALALLOC

#define WIN32_LEAN_AND_MEAN

#include <windows.h>

#endif
```

Kann es sein, dass das build system hier irgendwie "HAVE_VIRTUALALLOC" setzt?

Kannst du mal im build-Verzeichnis (/var/tmp/portage/media-video/ffmpeg-2.6.3/work/ffmpeg-2.6.3/) die config.h-Datei öffnen und den Inhalt hier posten?

----------

## dsiggi

Komisch komisch.

Jetzt lässt es sich emergen. Der einzige Unterschied zu den Versuchen als ich hier gepostet habe, ist das ich jetzt kein distcc verwendet habe.

Ich habe auf meinem Laptop den distcc-server laufen und über crossdev die passende Toolchain für den odroid erstellt.

ha bis jetzt auch super funktioniert, aber bei ffmpeg scheint da wohl was nicht zu passen.

Die config.h befindet sich bei mir nicht in 

```
/var/tmp/portage/media-video/ffmpeg-2.6.3/work/ffmpeg-2.6.3/
```

sonder in

```
/var/tmp/portage/media-video/ffmpeg-2.6.3/work/ffmpeg-2.6.3-.arm/
```

Die Datei ist recht groß, darum hab ich sie mal hier hoch geladen:

http://fpaste.org/264529/

dsiggi

----------

## l3u

Ab und an verschluckt sich ein Build-Prozess mal an distcc. Ich probier bei einem unerwarteten Fehler immer erstmal ohne distcc und dann mit -j1. Klappt oft …

----------

