Sto cercando di creare una toolchain di compilazione incrociata basata su GCC4.5 e newlib con oro e ottimizzazione del tempo di collegamento attivata. GCC si compila bene ma non ha generato i file crt1.o o crti.o. Perciò quando tenta di utilizzare il compilatore per la costruzione di Newlib si lamenta con il messaggio:Mancanza di crt1 e crti durante la compilazione incrociata
ld: error: cannot open crti.o: No such file or directory
ld: error: cannot open crtn.o: No such file or directory
ld: error: cannot find -lc
Durante la ricerca di file denominati crt * nella directory in cui è installato GCC4.5 ho ottenuto il seguente risultato:
find ../../../tooltarget/ -name "crt*" -print #(result modified to consume less space)
crtprec80.o, crtend.o, crtfastmath.o, crtbegin.o, crtendS.o, crtprec32.o, crtbeginS.o, crtbeginT.o, crtprec64.o
Dalle specifiche GCC sembra che gcc abbia bisogno sia dei file crtbegin.o che crti.o, ma solo uno di essi è disponibile.
*startfile:
%{!shared: %{pg|p|profile:gcrt1.o%s;pie:Scrt1.o%s;:crt1.o%s}} crti.o%s %{static:crtbeginT.o%s;shared|pie:crtbeginS.o
%s;:crtbegin.o%s}
seguito è riportato il flag ho usato durante la compilazione di GCC:
--prefix=${TTP}/usr --build=x86_64-pc-linux-gnu
--host=x86_64-pc-linux-gnu --target=x86_64-awn-linux-gnu
--with-gmp=${TTP}/usr --with-mpc=${TTP}/usr
--with-mpfr=${TTP}/usr --with-libelf=${TTP}/usr
--enable-languages=c --enable-lto
--disable-nls --disable-shared
--disable-multilib --disable-decimal-float
--disable-libmudflap --disable-libssp
--disable-libgomp --disable-threads
--without-headers --with-newlib
--with-build-sysroot=${TTP} --with-build-time-tools=${TTP}/usr/bin
Sono sicuro che su se questo è dovuto al Ho configurato GCC a torto, o "roba" semplicemente non funziona in questo modo, o se i file crti.o dovrebbero provenire da qualche altra parte.
Grazie in anticipo
Allan W. Nielsen
possibile duplicato di [file crti.o mancante] (http://stackoverflow.com/questions/91576/crti-o-file-missing) – user2284570
Ho appena risolto un problema come questo con gcc build aggiungendo '--host = x86_64' per './configure' script, ma non sono sicuro se aiuta. – ton