kfoynt Δημοσ. 27 Σεπτεμβρίου 2011 Δημοσ. 27 Σεπτεμβρίου 2011 Καλησπέρα Χρησιμοποιώ ένα το πακέτο http://www.fftw.org/ σε ένα αλγόριθμο που έχουμε γράψει σε C. Το πακέτο έχει γίνει εγκατάσταση στο /usr/local/ και έχω τρέξει make installcheck + make check με επιτυχία. Το πακέτο γίνεται link στο executable που παράγει το πρόγραμμα μας χρησιμοποιόντας την εντολή -lfftw -lm, και το executable παράγεται με επιτυχία. Όταν όμως τρέχω το executable ./hmfext παίρνω ένα segmentation fault όταν καλεί συναρτήσεις από το πακέτο FFTW. Συγκεριμένα στον debugger μου δείχνει: Program received signal SIGSEGV, Segmentation fault. 0x00000000 in ?? () #6 0x00321d31 in fftw_plan_r2r_1d (n=4096, in=0x80d80b0, out=0x80e00b8, kind=FFTW_REDFT01, flags=0) at ../../../../sources/fftw/api/plan-r2r-1d.c:25 25 ../../../../sources/fftw/api/plan-r2r-1d.c: No such file or directory. in ../../../../sources/fftw/api/plan-r2r-1d.c Φαντάζομαι ότι υπάρχει πρόβλημα με την σύνδεση, αλλά μπορείς να κάνω και λάθος. Γνωρίζει κάποιος κάτι?
παπι Δημοσ. 27 Σεπτεμβρίου 2011 Δημοσ. 27 Σεπτεμβρίου 2011 το μονο NULL στο http://read.pudn.com/downloads181/sourcecode/graph/841255/fftw-3.2.1/api/plan-r2r-1d.c__.htm μπορει να ειναι το plan_r2r που λογικα ειναι σε bss. Βαλε ενα breakpoint εκει περα
kfoynt Δημοσ. 27 Σεπτεμβρίου 2011 Μέλος Δημοσ. 27 Σεπτεμβρίου 2011 το μονο NULL στο http://read.pudn.com/downloads181/sourcecode/graph/841255/fftw-3.2.1/api/plan-r2r-1d.c__.htm μπορει να ειναι το plan_r2r που λογικα ειναι σε bss. Βαλε ενα breakpoint εκει περα Δυστυχώς η συνάρτηση αυτή ανήκει στο πακέτο, και δεν μου δίνει δυνατότητα debugging. Κάποια άλλη επιλογή? Παραθέτω και το makefile: > include settings OBJECTS= example.o OUTPUT = hmfext MYLIBS = -L ../../interface -linterface -L ../../source -lsource MATLABDIR=/usr/local/MATLAB MATLABLIBS= -Wl,-rpath-link,$(MATLABDIR)/bin/glnx86 -L$(MATLABDIR)/bin/glnx86 -lmex -lmat -leng -lmx MATLABLINKERSONE= -I$(MATLABDIR)/extern/include MATLABLINKERSTWO= -I$(MATLABDIR)/extern/include -DMX_COMPAT_32 MATLABLINKERSTHREE= -I$(MATLABDIR)/simulink/include -DMATLAB_MEX_FILE -ansi -D_GNU_SOURCE -fexceptions -D_FILE_OFFSET_BITS=64 FFTWLIBS= -L /usr/local/lib -lfftw3 FFTWLINKERS= -I/usr/local/include .c.o: $(CC) $(CFLAGS) $(DEFINE) $(MATLABLINKERSONE) $(MATLABLINKERSTWO) $(MATLABLINKERSTHREE) $(FFTWLINKERS) -c $< -o $@ $(OUTPUT): $(OBJECTS) $(CC) $(CFLAGS) $(OBJECTS) $(MYLIBS) $(LIBS) $(MATLABLIBS) $(FFTWLIBS) -o $(OUTPUT) clean: \rm $(OBJECTS) $(OUTPUT) --------------- Έφτιαξα ένα άλλο αρχείο που χρησιμοποιεί μόνο το πακέτο FFTW. το κάνω compile με: >gcc test.c -lfftw3 -lm -o test και δουλεύει μια χαρά, το κάνω compile με: >gcc -I/usr/local/include test.c -L/usr/local/lib -lfftw3 -lm -o test και επίσης δουλεύει μια χαρά... αλλά το πρόγραμμα που γίνεται compile με το make file ακόμη δεν λειτουργεί! --------------------- Να προσθέσω ότι έβαλα τον κώδικα που δεν λειτουργεί από τον αλγόριθμο στο temp προγραμμα που ανέφερα πιο πάνω και δούλεψε μια χαρα.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.