Quiero compilar "compilador cruzado gcc" para compilar aplicaciones "c/C++" en el entorno "Linux" pero para el objetivo "Windows".Construyendo compilador cruzado GCC (de "Linux" a "Windows")
he hecho esto hasta ahora:
instalado las herramientas y los paquetes necesarios para la construcción de GCC que aparece en la página "Prerequisites for GCC".
descargados fuentes requeridas:
"gcc-core-4.4.1", "gcc-g++-4.4.1", "binutils-2.19.1", "w32api-3.13-mingw32", "mingwrt-3.16-mingw32"Creado esta jerarquía de directorios:
"$ {HOME}/gcc/"- para el compilador cruzado final
" $ {HOME}/src/"- para las fuentes
" $ {HOME}/src/build-binutils/i386-mingw32/"- para construir binutils en" i386-mingw32 " objetivo
"$ {HOME}/Src/build-gcc/i386-mingw32/"- para la construcción de gcc para "i386-mingw32" objetivobinutils Builded paquete:
cd" $ {HOME}/src/build-binutils/i386 -mingw32 /"
../../binutils-2.19.1/configure --prefix = "$ {HOME}/gcc" --target = i386-mingw32 --disable-nls
hacen
make installcopiado y encabezados "" "W32api mingwrt" al directorio de instalación:
cp -R "$ {HOME} /src/w32api-3.13-mingw32/include" "$ {HOME}/gcc/i386-mingw32"
cp -R "$ {HOME} /src/mingwrt-3.16- mingw32/include" "$ {HOME}/gcc/i386-mingw32"
Y ahora, cuando estoy tratando de construir el "c (sólo) compilador cruzado":
cd "${HOME}/src/build-gcc/i386-mingw32/"
../../gcc-4.4.1/configure --prefix="${HOME}/gcc" --target=i386-mingw32 --enable-languages=c --with-headers="${HOME}/gcc/i386-mingw32/include" --disable-nls
make<br>
estaba construyendo algo de aproximadamente 4 minutos y luego me da estos errores:
${HOME}/gcc/i386-mingw32/bin/ld: dllcrt2.o: No such file: No such file or directory
collect2: ld returned 1 exit status
make[2]: *** [libgcc_s.dll] Error 1
make[2]: Leaving directory `${HOME}/src/build-gcc/i386-mingw32/i386-mingw32/libgcc'
make[1]: *** [all-target-libgcc] Error 2
make[1]: Leaving directory `${HOME}/src/build-gcc/i386-mingw32'
make: *** [all] Error 2
De ese mensaje de error Realmente no sé qué hacer ahora: - (((.
¿Alguien sabe dónde está el problema?
Gracias.
Muchas gracias por su comentario: "Ha realizado con éxito el paso 3 anterior". Pensé que si obtenía algún error no podía pasar al siguiente paso, pero (afortunadamente) estaba equivocado. A continuación, compilé satisfactoriamente win32api, pero obtuve algunos errores cuando intenté compilar mingwrt; algo estaba mal con "enhebrar". Así que decidí compilar gcc con estos parámetros: --prefix = "$ {HOME}/gcc" --target = i386-mingw32 --program-prefix = i386-mingw32 --enable-languages = c, C++ --with -headers = "$ {HOME}/gcc/i386-mingw32/include" --disable-nls --disable-threads --disable-shared --disable-libssp. ¡Y esto funcionó! – Petike
Lamento un pequeño error del comentario anterior: el problema estaba en la opción "compartida" y NO en la opción "hilos". Entonces compiló también sin "--disable-threads" especificado. – Petike
En cuanto a los hilos, también puede compilar GCC con '--enable-libgomp' (para OpenMP) si tiene instalada la biblioteca pthreads-win32. –