πρόβλημα με το "τρέξιμο" αρχείου makefile [ΕΠΙΛΥΘΗΚΕ]

...εφαρμογές για οτιδήποτε άλλο

Συντονιστής: konnn

πρόβλημα με το "τρέξιμο" αρχείου makefile [ΕΠΙΛΥΘΗΚΕ]

Δημοσίευσηαπό gus00 » 30 Νοέμ 2008, 02:29

Γεια χαρά σε όλους,είμαι αρχάριος στο ubutntu (γενικά στο linux) και θέλω να τρέξω ένα αρχείο makefile.

Oι οδηγίες αυτού που έφτιαξε το makefile λένε να το κάνω edit και να βάλω στο "CC=" τον ANSI C compiler που έχω στο pc και στο "ROOTDIR = . " το rootdirectory που περιέχει το makefile.
Τα άλλαξα ως εξής: CC = /usr/bin/gcc-4.3
ROOTDIR = /media/disk/sts-2.0 (ο φάκελος πού έχει το makefile)

Μετά πάω στο terminal και πατάω:make `/media/disk/sts-2.0/makefile`
μου βγάζει το ακόλουθο μήνυμα:
/media/disk/sts-2.0/makefile: line 1: CC: command not found
για πολλές γραμμές όχι μόνο για line 1 και κάποια άλλα που υποθέτω ότι βγαίνουν επειδή δεν έτρεξε το makefile και στο τέλος το ακόλουθο μήνυμα:
make: *** No targets specified and no makefile found. Stop.

Έχω κάνει install τον gcc με τις ακόλουθες εντολές:
sudo apt-get update
sudo apt-get install build-essential

Καμιά ιδέα για το τί μπορεί να φταίει και πώς μπορώ να το διορθώσω?
Τελευταία επεξεργασία από gus00 και 30 Νοέμ 2008, 19:52, έχει επεξεργασθεί 1 φορά/ες συνολικά
Γνώσεις ⇛ Linux: Χαμηλό ┃ Προγραμματισμός: Ναι ┃ Αγγλικά: Καλά
Διανομή ⇛ Ubuntu 8.1 32bit
gus00
babeTUX
babeTUX
 
Δημοσιεύσεις: 4
Εγγραφή: 29 Νοέμ 2008, 22:37
Εκτύπωση

Re: πρόβλημα με το "τρέξιμο" αρχείου makefile

Δημοσίευσηαπό logari81 » 30 Νοέμ 2008, 02:46

γεια σου, αυτό το εχεις δει;
viewtopic.php?f=9&t=55
http://opensourceecology.org/


Λειτουργικό: Ubuntu 10.04 lucid 64-bitΠροδιαγραφές: 4x Intel Core i5 CPU M 450 2.40GHz ‖ RAM 3696 MiB ‖ Lenovo KL3 - LENOVO IdeaPad Y560
Κάρτα γραφικών: ATI Device [1002:68c0]Ασύρματο: wlan0: Atheros Inc. AR928X Wireless Network Adapter (PCI-Express) [168c:002a] (rev 01)
logari81
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 6074
Εγγραφή: 14 Μάιος 2008, 10:40
Εκτύπωση

Re: πρόβλημα με το "τρέξιμο" αρχείου makefile

Δημοσίευσηαπό Dimitris » 30 Νοέμ 2008, 02:52

Καλώς όρισες στο θαυμαστό κόσμο του Linux!!!

Καταρχήν για ποιό πρόγραμμα ενδιαφέρεσαι; Μπορεί να υπάρχει ήδη καποιο deb πακέτο. Ακομη κι αν δεν υπάρχει πες το να το δοκιμάσω να σου πω ακριβως τι πρέπει να κάνεις. Έπειτα χρειάζεται να εγκαταστήσεις τo πακέτο build-essential:
Κώδικας: Επιλογή όλων
sudo apt-get install build-essential

Τώρα έχεις εγκατεστημένο στον υπολογιστή σου το πρόγραμμα make καθώς και το gcc μεταγλωττιστή. Η επιλογή CC δηλώνει το μεταγλωτιστή, δηλαδή το gcc. Θα πρέπει ναι είναι εκείνη η γραμμη:
Κώδικας: Επιλογή όλων
CC=gcc

Για το ROOTDIR πρέπει να δω το makefile δεν είμαι σίγουρος.

Για να σιγουρευτείς ότι είναι σωστά εγκατεστημένος ο gcc γράψε στο τερματικό:
Κώδικας: Επιλογή όλων
gcc

και θα πρέπει να λάβεις το μήνυμα
Κώδικας: Επιλογή όλων
gcc: no input files
Άβαταρ μέλους
Dimitris
saintTUX
saintTUX
 
Δημοσιεύσεις: 1357
Εγγραφή: 13 Μάιος 2008, 13:57
Τοποθεσία: Θεσσαλονίκη
Εκτύπωση

Re: πρόβλημα με το "τρέξιμο" αρχείου makefile

Δημοσίευσηαπό gus00 » 30 Νοέμ 2008, 18:09

Ευχαριστώ πολύ για την άμμεση ανταπόκριση στο μήνυμα μου.

@logari81: το είδα το topic αλλά δεν έβγαλα άκρη στο πως μπορεί να με βοηθήσει....

@Dimitris:το έχω εγκαταστήσει το build-essential,όπως λέω και στο post μου και όταν γράφω στο τερματικό gcc μου βγάζει gcc: no input files , οπότε είναι εγκατεστημένο σωστά το gcc.

Δεν είναι κάποιο συγκεκριμένο πρόγραμμα αυτό που θέλω να τρέξω,ουσιαστικά πρόκειται για ένα πακέτο αρχείων C που επεξεργάζονται κάποια δεδομένα.

Το makefile είναι:
Κώδικας: Επιλογή όλων

CC = /usr/bin/gcc
GCCFLAGS = -c -Wall
ROOTDIR = .
SRCDIR = $(ROOTDIR)/src
OBJDIR = $(ROOTDIR)/obj
VPATH = src:obj:include

OBJ = $(OBJDIR)/assess.o $(OBJDIR)/frequency.o $(OBJDIR)/blockFrequency.o \
$(OBJDIR)/cusum.o $(OBJDIR)/runs.o $(OBJDIR)/longestRunOfOnes.o \
$(OBJDIR)/serial.o $(OBJDIR)/rank.o $(OBJDIR)/discreteFourierTransform.o \
$(OBJDIR)/nonOverlappingTemplateMatchings.o \
$(OBJDIR)/overlappingTemplateMatchings.o $(OBJDIR)/universal.o \
$(OBJDIR)/approximateEntropy.o $(OBJDIR)/randomExcursions.o \
$(OBJDIR)/randomExcursionsVariant.o $(OBJDIR)/linearComplexity.o \
$(OBJDIR)/dfft.o $(OBJDIR)/cephes.o $(OBJDIR)/matrix.o \
$(OBJDIR)/utilities.o $(OBJDIR)/generators.o $(OBJDIR)/genutils.o

assess: $(OBJ)
$(CC) -o $@ $(OBJ) -lm

$(OBJDIR)/assess.o: $(SRCDIR)/assess.c defs.h decls.h utilities.h
$(CC) -o $@ -c $(SRCDIR)/assess.c

$(OBJDIR)/frequency.o: $(SRCDIR)/frequency.c defs.h externs.h
$(CC) -o $@ $(GCCFLAGS) $(SRCDIR)/frequency.c

$(OBJDIR)/blockFrequency.o: $(SRCDIR)/blockFrequency.c defs.h externs.h
$(CC) -o $@ $(GCCFLAGS) $(SRCDIR)/blockFrequency.c

$(OBJDIR)/cusum.o: $(SRCDIR)/cusum.c defs.h externs.h
$(CC) -o $@ $(GCCFLAGS) $(SRCDIR)/cusum.c

$(OBJDIR)/runs.o: $(SRCDIR)/runs.c defs.h externs.h
$(CC) -o $@ $(GCCFLAGS) $(SRCDIR)/runs.c

$(OBJDIR)/longestRunOfOnes.o: $(SRCDIR)/longestRunOfOnes.c defs.h externs.h
$(CC) -o $@ $(GCCFLAGS) $(SRCDIR)/longestRunOfOnes.c

$(OBJDIR)/rank.o: $(SRCDIR)/rank.c defs.h externs.h matrix.h
$(CC) -o $@ $(GCCFLAGS) $(SRCDIR)/rank.c

$(OBJDIR)/discreteFourierTransform.o: $(SRCDIR)/discreteFourierTransform.c \
defs.h externs.h utilities.h
$(CC) -o $@ $(GCCFLAGS) $(SRCDIR)/discreteFourierTransform.c

$(OBJDIR)/nonOverlappingTemplateMatchings.o: \
$(SRCDIR)/nonOverlappingTemplateMatchings.c defs.h externs.h utilities.h
$(CC) -o $@ $(GCCFLAGS) $(SRCDIR)/nonOverlappingTemplateMatchings.c

$(OBJDIR)/overlappingTemplateMatchings.o: \
$(SRCDIR)/overlappingTemplateMatchings.c defs.h externs.h utilities.h
$(CC) -o $@ $(GCCFLAGS) $(SRCDIR)/overlappingTemplateMatchings.c

$(OBJDIR)/universal.o: $(SRCDIR)/universal.c defs.h externs.h utilities.h
$(CC) -o $@ $(GCCFLAGS) $(SRCDIR)/universal.c

$(OBJDIR)/approximateEntropy.o: $(SRCDIR)/approximateEntropy.c defs.h externs.h utilities.h
$(CC) -o $@ $(GCCFLAGS) $(SRCDIR)/approximateEntropy.c

$(OBJDIR)/randomExcursions.o: $(SRCDIR)/randomExcursions.c defs.h externs.h
$(CC) -o $@ $(GCCFLAGS) $(SRCDIR)/randomExcursions.c

$(OBJDIR)/randomExcursionsVariant.o: $(SRCDIR)/randomExcursionsVariant.c defs.h externs.h
$(CC) -o $@ $(GCCFLAGS) $(SRCDIR)/randomExcursionsVariant.c

$(OBJDIR)/serial.o: $(SRCDIR)/serial.c defs.h externs.h
$(CC) -o $@ $(GCCFLAGS) $(SRCDIR)/serial.c

$(OBJDIR)/linearComplexity.o: $(SRCDIR)/linearComplexity.c defs.h externs.h
$(CC) -o $@ $(GCCFLAGS) $(SRCDIR)/linearComplexity.c

$(OBJDIR)/dfft.o: $(SRCDIR)/dfft.c
$(CC) -o $@ $(GCCFLAGS) $(SRCDIR)/dfft.c

$(OBJDIR)/matrix.o: $(SRCDIR)/matrix.c defs.h externs.h utilities.h matrix.h
$(CC) -o $@ $(GCCFLAGS) $(SRCDIR)/matrix.c

$(OBJDIR)/genutils.o: $(SRCDIR)/genutils.c config.h genutils.h
$(CC) -o $@ $(GCCFLAGS) $(SRCDIR)/genutils.c

$(OBJDIR)/cephes.o: $(SRCDIR)/cephes.c cephes.h
$(CC) -o $@ $(GCCFLAGS) $(SRCDIR)/cephes.c

$(OBJDIR)/utilities.o: $(SRCDIR)/utilities.c defs.h externs.h utilities.h config.h
$(CC) -o $@ $(GCCFLAGS) $(SRCDIR)/utilities.c

$(OBJDIR)/generators.o: $(SRCDIR)/generators.c defs.h externs.h utilities.h \
config.h generators.h
$(CC) -o $@ $(GCCFLAGS) $(SRCDIR)/generators.c

clean:
rm -f assess $(OBJDIR)/*.o

rebuild: clean assess


και σε περίπτωση που χρειάζεται παραθέτω και το link που βρίσκεται αυτό που θέλω να τρέξω
Κώδικας: Επιλογή όλων

http://csrc.nist.gov/groups/ST/toolkit/rng/documentation_software.html
Γνώσεις ⇛ Linux: Χαμηλό ┃ Προγραμματισμός: Ναι ┃ Αγγλικά: Καλά
Διανομή ⇛ Ubuntu 8.1 32bit
gus00
babeTUX
babeTUX
 
Δημοσιεύσεις: 4
Εγγραφή: 29 Νοέμ 2008, 22:37
Εκτύπωση

Re: πρόβλημα με το "τρέξιμο" αρχείου makefile

Δημοσίευσηαπό Dimitris » 30 Νοέμ 2008, 18:35

Εξαρτάται που βρίσκεσαι όταν πληκτρολογείς την εντολή. Κατέβασα τον κώδικα στην επιφανεια εργασίας και τον αποσυμπίεσα. Μετά:
Κώδικας: Επιλογή όλων
$cd ~/Desktop
$cd sts-2.0/
$ls
__MACOSX sts-2.0
$cd sts-2.0
$pwd
~/Desktop/sts-2.0/sts-2.0
$make

και άρχισε να μεταγλωττίζει χωρίς καμιά αλλαγή. Τι σημαίνει το ROOTDIR; Είναι απλώς ο βασικός φάκελος στον οποίο είναι τα υπολοιπα αρχεία. προϋποθέτει δηλαδή ότι βρίσκεσαι στο συγκεκριμένο directory αν έχεις . (τελεία). Μπορείς να το τρέξεις κι από άλλο φάκελο, αλλά τότε θα πρέπει να αλλάξεις το ROOTDIR.
Για παράδειγμα:
Κώδικας: Επιλογή όλων
$cd
$make -f ~/Desktop/sts-2.0/sts-2.0/makefile

θα έπρεπει να τρέξει.
Aλλά δοκιμάζοντας είδα ότι δεν είναι full-proof γιατί δε βρίσκει κάποια include files. Θα υπάρχει κάποιος λόγος που το κάνανε έτσι, γιατί θα ταιριάζει έτσι στο σύστημάτους, αλλά δεν είναι και τόσο standard. Δεν τρέχει γιατι στα dependencies υπάρχει το defs.h που το ψάχνει στο . και όχι στο $(ROOTDIR)/include όπως θα έπρεπε.
Aν δεν αλλάξεις τίποτε και βρίσκεσαι στο directory με το makefile, δεν πρέπει να υπάρξει πρόβλημα.

Συνοψίζοντας
$cd path_to_makefile
και στο makefile πρέπει να είναι:
Κώδικας: Επιλογή όλων
CC = /usr/bin/gcc
ROOTDIR = .


Από τον οδηγό τι δεν έβγαλες άκρη; Τι πιστεύεις ότι λείπει;
Άβαταρ μέλους
Dimitris
saintTUX
saintTUX
 
Δημοσιεύσεις: 1357
Εγγραφή: 13 Μάιος 2008, 13:57
Τοποθεσία: Θεσσαλονίκη
Εκτύπωση

Re: πρόβλημα με το "τρέξιμο" αρχείου makefile

Δημοσίευσηαπό gus00 » 30 Νοέμ 2008, 19:36

Σ ευχαριστώ πολύ Dimitri!!!!
Δούλεψε!!!!

Για τον οδηγό είπα ότι δεν κατάλαβα εγώ, τι θα 'πρέπε να κάνω στην περίπτωση μου...Μάλλον φταίει το γεγονός ότι είμαι πολύ αρχάριος...

Συγνώμη αν γίνομαι κουραστικός αλλά το εκτελέσιμο που προκύπτει (assess λέγεται) δεν θα πρέπε να τρέχει με διπλό κλικ πάνω του ή έστω με το autorun promt αν πάω να το ανοίξω μέσω αυτού?
Γνώσεις ⇛ Linux: Χαμηλό ┃ Προγραμματισμός: Ναι ┃ Αγγλικά: Καλά
Διανομή ⇛ Ubuntu 8.1 32bit
gus00
babeTUX
babeTUX
 
Δημοσιεύσεις: 4
Εγγραφή: 29 Νοέμ 2008, 22:37
Εκτύπωση

Re: πρόβλημα με το "τρέξιμο" αρχείου makefile

Δημοσίευσηαπό Dimitris » 30 Νοέμ 2008, 19:42

Aπό τη γραμμή εντολών στο φάκελο που βρίσκεται το εκτελέσιμο γράψε:
./assess
είναι πρόγραμμα τερματικού, οποτε με διπλό κλικ θα εκτελεστει σε ένα τερματικό αλλά τα αποτελέσματά του δε θα τα δεις. Για να τα δεις θα πρέπει να το εκτελέσεις απο το τερματικό.

ΥΓ. Δε γίνεσαι κουραστικός μην ανησυχείς.
Άβαταρ μέλους
Dimitris
saintTUX
saintTUX
 
Δημοσιεύσεις: 1357
Εγγραφή: 13 Μάιος 2008, 13:57
Τοποθεσία: Θεσσαλονίκη
Εκτύπωση

Re: πρόβλημα με το "τρέξιμο" αρχείου makefile

Δημοσίευσηαπό gus00 » 30 Νοέμ 2008, 19:51

Σ ευχαριστώ πάρα πολύ Dimitri για το χρόνο σου και την υπομονή σου!

Τώρα πια είναι όλα ΟΚ!!!!
Γνώσεις ⇛ Linux: Χαμηλό ┃ Προγραμματισμός: Ναι ┃ Αγγλικά: Καλά
Διανομή ⇛ Ubuntu 8.1 32bit
gus00
babeTUX
babeTUX
 
Δημοσιεύσεις: 4
Εγγραφή: 29 Νοέμ 2008, 22:37
Εκτύπωση

Re: πρόβλημα με το "τρέξιμο" αρχείου makefile

Δημοσίευσηαπό Dimitris » 30 Νοέμ 2008, 19:57

Xαίρομαι! Πάντως ρίξε μια ματιά στον οδηγό για τα makefiles, θα σου φανεί χρησιμος. Τα makefiles είναι ο τυπικός τρόπος για μεταγλώττιση πηγαίου κώδικα στο linux. Bέβαια πιο "επαγγελματικός" κώδικας, έχει configure scripts που δημιουργούν πολύπλοκα makefiles, τα οποία δεν είναι να τα πειράζεις. Αλλά για απλά πακέτα που έχουν ένα makefile, χρειαζονται γνώσεις make για τέτοιες μικροεπεμβάσεις.
Άβαταρ μέλους
Dimitris
saintTUX
saintTUX
 
Δημοσιεύσεις: 1357
Εγγραφή: 13 Μάιος 2008, 13:57
Τοποθεσία: Θεσσαλονίκη
Εκτύπωση


  • ΣΧΕΤΙΚΑ ΘΕΜΑΤΑ
    ΑΠΑΝΤΗΣΕΙΣ
    ΠΡΟΒΟΛΕΣ
    ΣΥΓΓΡΑΦΕΑΣ

Επιστροφή στο Εφαρμογές Άλλες-Διάφορες