Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    475

    [makefile] File o directory non esistente

    Ciao a tutti,

    finalmente ho (forse) finito il programma che stavo facendo.
    In tutto i sorgenti si trovano su 7 file diversi, quindi ho pensato che sarebbe stata un'ottima cosa usare make (su ubuntu) per compilarli separatamente.

    Ho pensato quindi di fare questo makefile.

    codice:
    CC = g++
    CFLAGS = -g -Wall
    ALL_MODULES = square_matrix.o kramer.o error_maker.o main.o
    
    #Programma eseguibile
    kramer: $(ALL_MODULES)
    	$(CC) $(CFLAGS) $(ALL_MODULES) -o kramer
    
    #Codice del programma
    main.o: main.cc square_matrix.hpp kramer.hpp
    	$(CC) $(CFLAGS) main.cc -c main.o
    
    #Modulo che risolve i sistemi lineari
    kramer.o: kramer.cc kramer.hpp
    	$(CC) $(CFLAGS) kramer.cc -c kramer.o
    
    #Modulo che gestisce le matrici
    square_matrix.o: square_matrix.cc square_matrix.hpp
    	$(CC) $(CFLAGS) square_matrix.cc -c square_matrix.o
    
    #Modulo che produce i codici di errore
    error_maker.o: error_maker.cc error_maker.hpp
    	$(CC) $(CFLAGS) error_maker.cc -c error_maker.o
    Per ogni target ho messo il file .cc e il relativo header, e l'opzione -c lo fa compilare come modulo senza il linking...
    Per il main ho inserito come dipendenze solo il suo .cc e gli header che include, e poi l'eseguibile ha come dipendenze tutti gli altri .o.

    Però quando lancio make, ottengo questo output:
    codice:
    g++ -g -Wall square_matrix.cc -c square_matrix.o
    g++: square_matrix.o: File o directory non esistente
    make: *** [square_matrix.o] Errore 1
    In teoria, la prima riga dovrebbe creare proprio il file square_matrix.o, che infatti compare nella cartella, eppure make insiste che non c'è e non compila... cosa sbaglio?

    (Magari la sezione? Ero indeciso se andava in Linux e Software )
    "Let him who has understanding reckon the number of the beast, for it is a human number.
    Its number is rw-rw-rw-."

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    475
    Colpa mia (o meglio, del tutorial che ho seguito). Per compilare senza il linking bisogna dare solo l'opzione "-c", non "-c <nome.o>".

    "Let him who has understanding reckon the number of the beast, for it is a human number.
    Its number is rw-rw-rw-."

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.