Ci è voluto un po 'per andare bene. Ho avuto questo problema durante la compilazione incrociata in Ubuntu per un target ARM. Ho risolto con: non viene utilizzato con autogen.sh/configure
PATH=$PATH:/ccpath/bin CC=ccname-gcc AR=ccname-ar LD=ccname-ld CPPFLAGS="-nostdinc -I/ccrootfs/usr/include ..." LDFLAGS=-L/ccrootfs/usr/lib ./autogen.sh --build=`config.guess` --host=armv5tejl-unknown-linux-gnueabihf
CFLAGS Privacy, utilizzando mi ha dato l'errore: "configure: error: compilatore C non può creare eseguibili". Nell'ambiente di costruzione che stavo usando, è stato fornito uno script autogen.sh, se non si ha uno script autogen.sh sostitutivo ./autogen.sh con ./configure nel comando precedente. Ho eseguito config.guess sul sistema di destinazione per ottenere il parametro --host.
Dopo aver eseguito con successo autogen.sh/configure, compilare con:
PATH=$PATH:/ccpath/bin CC=ccname-gcc AR=ccname-ar LD=ccname-ld CPPFLAGS="-nostdinc -I/ccrootfs/usr/include ..." LDFLAGS=-L/ccrootfs/usr/lib CFLAGS="-march=... -mcpu=... etc." make
Il CFLAGS ho scelto di usare sono: "-march = ARMv5TE -fno-tree-vectorize -mthumb-Interwork -mcpu = ARM926EJ -S". Ci vorrà un po 'per avere tutte le directory di inclusione configurate correttamente: potresti voler includere alcune opzioni che puntano al tuo cross-compiler e alcune che puntano al tuo file system di root include, e probabilmente ci saranno alcuni conflitti.
Sono sicuro che questa non è la risposta perfetta. E sto ancora vedendo alcune directory include che puntano a/e non/ccrootfs nei Makefile. Mi piacerebbe sapere come correggere questo. Spero che questo aiuti qualcuno.
Nota che, ad eccezione del PERCORSO, si sovrascrivono quelli predefiniti del sistema. Se crei qualcosa come "export C_INCLUDE_PATH = ~/local/include: $ C_INCLUDE_PATH', il tuo compilatore cercherà prima in' ~/local/include', e in $ C_INCLUDE_PATH solo se non ha trovato l'inclusione nella prima directory . –