PDA

View Full Version : Problema gcc Ubuntu


Unrue
22-06-2006, 21:27
Quando cerco di compilare un programma con make, mi dà un errore del tipo:

/usr/lib/gcc/i486-linux-gnu/4.0.2/../../../../lib/crt1.o: In function `_start':
../sysdeps/i386/elf/start.S:115: undefined reference to `main'
bpred.o: In function `bpred_create':
/home/gabriele/Desktop/simplesim-arm/bpred.c:88: undefined reference to `_fatal'
/home/gabriele/Desktop/simplesim-arm/bpred.c:124: undefined reference to `_panic'
/home/gabriele/Desktop/simplesim-arm/bpred.c:137: undefined reference to `_fatal'
/home/gabriele/Desktop/simplesim-arm/bpred.c:139: undefined reference to `_fatal'
/home/gabriele/Desktop/simplesim-arm/bpred.c:143: undefined reference to `_fatal'
/home/gabriele/Desktop/simplesim-arm/bpred.c:162: undefined reference to `_fatal'
/home/gabriele/Desktop/simplesim-arm/bpred.c:168: undefined reference to `_fatal'
/home/gabriele/Desktop/simplesim-arm/bpred.c:180: undefined reference to `_panic'
bpred.o: In function `bpred_dir_create':

cosa può essere? Penso ad errori di librerie, ma fino all'altro giorno funzionava bene!

Se faccio cpp -v mi dà:
Using built-in specs.
Target: i486-linux-gnu
Configured with: ../src/configure -v --enable-languages=c,c++,java,f95,objc,ada,treelang --prefix=/usr --with-gxx-include-dir=/usr/include/c++/4.0.2 --enable-shared --with-system-zlib --libexecdir=/usr/lib --enable-nls --without-included-gettext --enable-threads=posix --program-suffix=-4.0 --enable-__cxa_atexit --enable-libstdcxx-allocator=mt --enable-clocale=gnu --enable-libstdcxx-debug --enable-java-gc=boehm --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.4.2-gcj-4.0-1.4.2.0/jre --enable-mpfr --disable-werror --enable-checking=release i486-linux-gnuThread model: posix
gcc version 4.0.2 20050808 (prerelease) (Ubuntu 4.0.1-4ubuntu9)
/usr/lib/gcc/i486-linux-gnu/4.0.2/cc1 -E -quiet -v - -mtune=i486
ignoring nonexistent directory "/usr/local/include/i486-linux-gnu"
ignoring nonexistent directory "/usr/include/i486-linux-gnu"
#include "..." search starts here:
#include <...> search starts here:
/usr/local/include
/usr/lib/gcc/i486-linux-gnu/4.0.2/include
/usr/include
End of search list.

Scoperchiatore
22-06-2006, 21:55
Postaci il risultato di ./configure e quello di make, ma completi.

Unrue
22-06-2006, 22:11
Ecco qua:

gabriele@ubuntumobile:~/Desktop/Arm/simplesim-arm$ make bpred
gcc bpred.o -o bpred
/usr/lib/gcc/i486-linux-gnu/4.0.2/../../../../lib/crt1.o: In function `_start':
../sysdeps/i386/elf/start.S:115: undefined reference to `main'
bpred.o: In function `bpred_create':
/home/gabriele/Desktop/Arm/simplesim-arm/bpred.c:81: undefined reference to `_fatal'
/home/gabriele/Desktop/Arm/simplesim-arm/bpred.c:117: undefined reference to `_panic'
/home/gabriele/Desktop/Arm/simplesim-arm/bpred.c:130: undefined reference to `_fatal'
/home/gabriele/Desktop/Arm/simplesim-arm/bpred.c:132: undefined reference to `_fatal'
/home/gabriele/Desktop/Arm/simplesim-arm/bpred.c:136: undefined reference to `_fatal'
/home/gabriele/Desktop/Arm/simplesim-arm/bpred.c:155: undefined reference to `_fatal'
/home/gabriele/Desktop/Arm/simplesim-arm/bpred.c:161: undefined reference to `_fatal'
/home/gabriele/Desktop/Arm/simplesim-arm/bpred.c:173: undefined reference to `_panic'
bpred.o: In function `bpred_dir_create':
/home/gabriele/Desktop/Arm/simplesim-arm/bpred.c:193: undefined reference to `_fatal'
/home/gabriele/Desktop/Arm/simplesim-arm/bpred.c:202: undefined reference to `_fatal'
/home/gabriele/Desktop/Arm/simplesim-arm/bpred.c:207: undefined reference to `_fatal'
/home/gabriele/Desktop/Arm/simplesim-arm/bpred.c:212: undefined reference to `_fatal'
/home/gabriele/Desktop/Arm/simplesim-arm/bpred.c:219: undefined reference to `_fatal'
bpred.o:/home/gabriele/Desktop/Arm/simplesim-arm/bpred.c:223: more undefined references to `_fatal' follow
bpred.o: In function `bpred_dir_create':
/home/gabriele/Desktop/Arm/simplesim-arm/bpred.c:260: undefined reference to `_panic'
bpred.o: In function `bpred_dir_config':
/home/gabriele/Desktop/Arm/simplesim-arm/bpred.c:295: undefined reference to `_panic'
bpred.o: In function `bpred_config':
/home/gabriele/Desktop/Arm/simplesim-arm/bpred.c:336: undefined reference to `_panic'
bpred.o: In function `bpred_reg_stats':
/home/gabriele/Desktop/Arm/simplesim-arm/bpred.c:377: undefined reference to `_panic'
/home/gabriele/Desktop/Arm/simplesim-arm/bpred.c:381: undefined reference to `stat_reg_sqword'
/home/gabriele/Desktop/Arm/simplesim-arm/bpred.c:385: undefined reference to `stat_reg_formula'
/home/gabriele/Desktop/Arm/simplesim-arm/bpred.c:387: undefined reference to `stat_reg_sqword'
/home/gabriele/Desktop/Arm/simplesim-arm/bpred.c:390: undefined reference to `stat_reg_sqword'
/home/gabriele/Desktop/Arm/simplesim-arm/bpred.c:397: undefined reference to `stat_reg_sqword'
/home/gabriele/Desktop/Arm/simplesim-arm/bpred.c:401: undefined reference to `stat_reg_sqword'
/home/gabriele/Desktop/Arm/simplesim-arm/bpred.c:406: undefined reference to `stat_reg_sqword'
bpred.o:/home/gabriele/Desktop/Arm/simplesim-arm/bpred.c:408: more undefined references to `stat_reg_sqword' follow
bpred.o: In function `bpred_reg_stats':
/home/gabriele/Desktop/Arm/simplesim-arm/bpred.c:425: undefined reference to `stat_reg_formula'
/home/gabriele/Desktop/Arm/simplesim-arm/bpred.c:430: undefined reference to `stat_reg_formula'
/home/gabriele/Desktop/Arm/simplesim-arm/bpred.c:435: undefined reference to `stat_reg_formula'
/home/gabriele/Desktop/Arm/simplesim-arm/bpred.c:440: undefined reference to `stat_reg_formula'
/home/gabriele/Desktop/Arm/simplesim-arm/bpred.c:444: undefined reference to `stat_reg_sqword'
/home/gabriele/Desktop/Arm/simplesim-arm/bpred.c:448: undefined reference to `stat_reg_sqword'
/home/gabriele/Desktop/Arm/simplesim-arm/bpred.c:452: undefined reference to `stat_reg_sqword'
/home/gabriele/Desktop/Arm/simplesim-arm/bpred.c:456: undefined reference to `stat_reg_sqword'
/home/gabriele/Desktop/Arm/simplesim-arm/bpred.c:461: undefined reference to `stat_reg_formula'
bpred.o: In function `bpred_dir_lookup':
/home/gabriele/Desktop/Arm/simplesim-arm/bpred.c:540: undefined reference to `_panic'
bpred.o: In function `bpred_lookup':
/home/gabriele/Desktop/Arm/simplesim-arm/bpred.c:568: undefined reference to `_panic'
/home/gabriele/Desktop/Arm/simplesim-arm/bpred.c:571: undefined reference to `md_op2flags'
/home/gabriele/Desktop/Arm/simplesim-arm/bpred.c:583: undefined reference to `md_op2flags'
/home/gabriele/Desktop/Arm/simplesim-arm/bpred.c:606: undefined reference to `md_op2flags'
/home/gabriele/Desktop/Arm/simplesim-arm/bpred.c:613: undefined reference to `md_op2flags'
/home/gabriele/Desktop/Arm/simplesim-arm/bpred.c:622: undefined reference to `md_op2flags'
/home/gabriele/Desktop/Arm/simplesim-arm/bpred.c:631: undefined reference to `_panic'
/home/gabriele/Desktop/Arm/simplesim-arm/bpred.c:697: undefined reference to `md_op2flags'
bpred.o: In function `bpred_update':
/home/gabriele/Desktop/Arm/simplesim-arm/bpred.c:759: undefined reference to `md_op2flags'
/home/gabriele/Desktop/Arm/simplesim-arm/bpred.c:778: undefined reference to `md_op2flags'
/home/gabriele/Desktop/Arm/simplesim-arm/bpred.c:829: undefined reference to `md_op2flags'
collect2: ld returned 1 exit status
make: *** [bpred] Error 1

Scoperchiatore
23-06-2006, 09:02
Ma non hai fatto
./configure

prima di fare make??

Prova a farlo, ovviamente stando sempre nella cartella del programma che vuoi compilare.

Unrue
23-06-2006, 18:02
Ma non hai fatto
./configure

prima di fare make??

Prova a farlo, ovviamente stando sempre nella cartella del programma che vuoi compilare.

Allora, bpred è il programma da compilare,
se scrivo :

./configure make bpred
mi dice "No such file or directory" .Ovviamente il tutto lo faccio nella cartella dove è bpred.

Scoperchiatore
23-06-2006, 18:25
quindi questo bpred non è compilato con autoconf.

Però sembra che sbagli lui in compilazione, e non che ci siano problemi con il compilatore.

Inoltre questa linea:
gcc bpred.o -o bpred

è molto sospetta: si compilano i .c generalmente, aver dato l'estensione .o ad un sorgente è da scemi :mbe:
Oppure lui vuole solo un link di un precompilato, ma allora non stai compilando bpred...

prova a fare
make clean
e poi
make all

Se non va comunque, postami il contenuto del file
Makefile
che sta dentro la cartella di bpred.


PS: ma che è sto bpred?

Unrue
23-06-2006, 19:06
quindi questo bpred non è compilato con autoconf.

Però sembra che sbagli lui in compilazione, e non che ci siano problemi con il compilatore.

Inoltre questa linea:
gcc bpred.o -o bpred

è molto sospetta: si compilano i .c generalmente, aver dato l'estensione .o ad un sorgente è da scemi :mbe:
Oppure lui vuole solo un link di un precompilato, ma allora non stai compilando bpred...

prova a fare
make clean
e poi
make all

Se non va comunque, postami il contenuto del file
Makefile
che sta dentro la cartella di bpred.


PS: ma che è sto bpred?


Bpred è un file del simulatore SimpleScalar. In particolare è la parte che simula la branch prediction. Il codice è molto lungo, meglio che non te lo posti :) Il make file invece non l'ho assolutamente toccato, non può essere quello.Comunque lo strano è che ho reinstallato tutte le librerie ed anche il gcc 4, ma nulla. Inoltre c'e' anche un file bpred.o, insieme a bpred.c e bpred.h , quindi è normale che parta da quello

maxithron
23-06-2006, 19:16
dopo aver scompattato l'archivio, di sicuro ci sarà un readme da qualche parte, cosa ti dice?

Unrue
23-06-2006, 19:45
dopo aver scompattato l'archivio, di sicuro ci sarà un readme da qualche parte, cosa ti dice?

Dunque, fino ad ieri compilavo tranquillamente, non è un problema che mi si è sempre presentato. L'unica cosa che ho fatto è aver installato una libreria con Synaptic in cui c'era alloc.h, in quanto mi serviva. Molto probbailmente è quella che ha fatto casino, perchè al riavvio non ha più funzionato nulla. Però l'ho tolta, ho reinstallato tutto ma nulla