PDA

View Full Version : [C++] Netbeans e g++, errore di build


Barbalbero
30-11-2009, 17:18
Sto provando a compilare un programma con netbeans, sotto linux.
il programma è il seguente:


#include <stdlib.h>
#include <unistd.h>
int main ()
{
pid_t child_pid;
child_pid = fork ();
if (child_pid > 0) {
sleep (60);
}
else {
exit (0);
}

return 0;
}


Se elimino lo sleep(60) funziona.
Altrimenti genera questo errore:


/usr/bin/make -f nbproject/Makefile-Debug.mk SUBPROJECTS= .build-conf
make[1]: ingresso nella directory «/home/utente/NetBeansProjects/Esercizius1»
/usr/bin/make -f nbproject/Makefile-Debug.mk dist/Debug/GNU-Linux-x86/esercizius1
make[2]: ingresso nella directory «/home/utente/NetBeansProjects/Esercizius1»
mkdir -p build/Debug/GNU-Linux-x86
rm -f build/Debug/GNU-Linux-x86/main.o.d
gcc -c -g -MMD -MP -MF build/Debug/GNU-Linux-x86/main.o.d -o build/Debug/GNU-Linux-x86/main.o main.cpp
mkdir -p dist/Debug/GNU-Linux-x86
gcc -o dist/Debug/GNU-Linux-x86/esercizius1 build/Debug/GNU-Linux-x86/main.o
build/Debug/GNU-Linux-x86/main.o:(.eh_frame+0x11): undefined reference to `__gxx_personality_v0'
collect2: ld returned 1 exit status
make[2]: *** [dist/Debug/GNU-Linux-x86/esercizius1] Errore 1
make[2]: uscita dalla directory «/home/utente/NetBeansProjects/Esercizius1»
make[1]: *** [.build-conf] Errore 2
make[1]: uscita dalla directory «/home/utente/NetBeansProjects/Esercizius1»
make: *** [.build-impl] Errore 2
BUILD FAILED (exit value 2, total time: 289ms)




Non capisco il motivo...

cionci
30-11-2009, 19:15
Hai creato un progetto C e non C++. Oppure netbeans sta cercando di linkare una libreria C++ usando gcc.
Io ti consiglio di usare Code::Blocks su Linux, molto più leggero.

Barbalbero
01-12-2009, 07:34
il problema era dovuto al fatto che il build non funzionava più su questo progetto, probabilmente avevo cambiato involontariamente qualcosa (MAH).
Quindi la versione vecchia senza sleep funzionava perché era già stata precedentemente compilata, mentre mettondo la sleep (o cambiando in qualsiasi modo il sorgente) non riusciva più a creare il .o. Ho "risolto" eliminando il progetto e creandone uno nuovo :fagiano:

cionci
01-12-2009, 07:47
Comunque l'errore era proprio che stava linkando un .o del C++ con gcc.

Prova comunque Code::Blocks, non te ne pentirai. Addirittura potresti provare QTCreator, anche senza usare le QT è un ottimo editor.
Netbeans è davvero troppo pachidermico per programmare in C++.

Barbalbero
01-12-2009, 08:03
in effetti mi va anche un po' lento su linux, però arrivando da Kate+Terminal per me era già fantastico. In più ha di buono che lo si può usare anche per java.
Allora proverò Code::Blocks come dici tu, grazie

cionci
01-12-2009, 08:06
Che distribuzione hai ?

Barbalbero
01-12-2009, 11:58
ubuntu, credo l'ultima versione

cionci
01-12-2009, 12:03
Aggiungi questi repo per Code::Blocks e per le wxWidgets:

deb http://apt.jenslody.de/ any main
deb http://apt.wxwidgets.org/ jaunty-wx main

Il secondo però per Karmic ancora non c'è. Non ci dovrebbero essere grossi problemi ad usare quello per Jaunty.