Voglio creare "gcc cross-compiler" per compilare "c/C++" su ambiente "Linux" ma per target "Windows".Compilare compilatore incrociato GCC (da "Linux" a "Windows")
ho fatto questa finora:
installati gli strumenti e pacchetti necessari per la costruzione di GCC quotata "Prerequisites for GCC" pagina.
scaricati fonti richieste:
"gcc-core-4.4.1", "gcc-g++-4.4.1", "binutils-2.19.1", "w32api-3.13-mingw32", "mingwrt-3.16-mingw32"Creato questa directory gerarchia:
"$ {HOME}/gcc/"- per cross-compiler finale
" $ {HOME}/src/"- per sorgenti
" $ {HOME}/src/build-binutils/i386-mingw32/"- per la costruzione di binutils su" i386-mingw32 " target
"$ {HOME}/Src/build-gcc/i386-mingw32/"- per la costruzione di GCC a "i386-mingw32" targetbinutils Builded pacchetto:
cd" $ {HOME}/src/build-binutils/i386 -mingw32 /"
../../binutils-2.19.1/configure --prefix = "$ {HOME}/gcc" --target = i386-mingw32 --disable-nls
fanno
make installcopiato "W32api" e "mingwrt" headers alla directory di installazione:
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"
E ora, quando sto cercando di costruire la "c (solo) cross-compilatore":
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>
si stava creando qualcosa di circa 4 minuti e poi mi dà questi errori:
${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
Da quel messaggio di errore non so davvero cosa fare ora: - (((.
Qualcuno sa dove si trova il problema?
Grazie.
Grazie mille per il tuo commento: "Hai eseguito correttamente il passaggio 3 sopra". Ho pensato che se avessi qualche errore non potrei andare al prossimo passo, ma (fortunatamente) mi sono sbagliato. Successivamente ho compilato con successo win32api, ma ho avuto alcuni errori quando ho provato a compilare mingwrt - c'era qualcosa di sbagliato in "threading". Così ho deciso di compilare gcc con questi parametri: --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. E questo ha funzionato !!! – Petike
Mi dispiace per un piccolo errore del commento precedente: il problema era nell'opzione "condivisa" e NON con l'opzione "discussioni". Così è stato compilato anche senza "--disable-threads" specificato. – Petike
Per quanto riguarda i thread, puoi anche creare GCC con '--enable-libgomp' (per OpenMP) se hai la libreria pthreads-win32 installata. –