Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Header che non funzionano

    Ciao a tutti!
    Sicuramente avrò sbagliato qualcosa ma ogni volta che mi avventuro ad usare un header in c++ ottengo un errore da parte del linker.

    Posto del codice di esempio riferito a tre file: calcolatrice.h, calcolatrice.cpp, main.cpp:

    Codice PHP:
    //calcolatrice.h

    int moltiplica(int,int); 
    Codice PHP:
    //calcolatrice.cpp

    #include "calcolatrice.h"
    int moltiplica(int a,int b) [ //sul laptop non mi funzionano le graffe!!!
        
    return a*b;

    Codice PHP:
    //main.cpp

    #include <stdio.h>
    #include "calcolatrice.h"
    int main() [
        
    moltiplica(4,5);

    Appena provo a compilare questo codice mi dice che c'è un Undefined Reference in moltiplica; purtroppo non riesco a capire dove diavolo abbia sbagliato... :master:

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254

    Re: Header che non funzionano

    Originariamente inviato da Tobler
    Appena provo a compilare questo codice mi dice che c'è un Undefined Reference in moltiplica; purtroppo non riesco a capire dove diavolo abbia sbagliato... :master:
    Compilatore/ambiente di sviluppo utilizzato??
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Come hai indicato al compilatore di trattare i file main.cpp e calcolatrice.cpp ?

  4. #4
    Giuste osservazioni, le vostre

    Sto usando Dev-cpp su Windows e il compilatore compila (scusate il gioco di parole :rollo: ) secondo i parametri standard impostati da Dev-cpp. Il compilatore è Mingw32.

    Spero di non aver dimenticato nulla...

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Originariamente inviato da Tobler
    Sto usando Dev-cpp su Windows e il compilatore compila (scusate il gioco di parole :rollo: ) secondo i parametri standard impostati da Dev-cpp. Il compilatore è Mingw32.
    Ok ... ma i 2 sorgenti .cpp sono stati inseriti all'interno del progetto in modo corretto?? Se sì, dovrebbe funzionare senza problemi.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  6. #6
    Originariamente inviato da andbin
    Ok ... ma i 2 sorgenti .cpp sono stati inseriti all'interno del progetto in modo corretto?? Se sì, dovrebbe funzionare senza problemi.
    Ma è davvero necessario che siano stati inseriti nel progetto? Non dovrebbe funzionare anche se stessi usando il compilatore via riga di comando?

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Se utilizzi il compilatore via riga di comando, devi indicare i due sorgenti nella linea di comando ... Cosa scrivi per compilare?

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Originariamente inviato da Tobler
    Ma è davvero necessario che siano stati inseriti nel progetto? Non dovrebbe funzionare anche se stessi usando il compilatore via riga di comando?
    Certo ... con il compilatore compili separatamente i 2 .cpp per ottenere 2 file oggetto .obj. E poi passi entrambi i file oggetto al linker per generare l'eseguibile!
    Guarda che è poi questo che fa "di nascosto" un "ambiente di sviluppo integrato" (IDE)!!
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  9. #9
    Oregon & Andbin, le cose iniziano a rendersi molto più chiare

    Deduco quindi che utilizzando il mio IDE senza progetto alcuno (ovvero usandolo come semplice text editor + compilatore dei singoli file che creo) gli faccio compilare nella sequenza sbagliata i file.
    Sicuramente dovrò rivedere la linea di comando impostata da Dev-cpp.

    Ultime due domande e poi mi eclisso:

    Perchè allora, riferendomi al mio esempio iniziale,

    Codice PHP:
    #include <stdio.h> 
    funziona senza problemi?

    Quale sarebbe il procedimento corretto via linea di comando per compilare quei miei tre file?

  10. #10
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Originariamente inviato da Tobler
    Quale sarebbe il procedimento corretto via linea di comando per compilare quei miei tre file?
    Ammesso che il Dev-C++ sia installato ad esempio in C:\Programmi\Dev-C++, si dovrebbero eseguire queste 3 righe di comando:

    C:\Programmi\Dev-C++\Bin\g++ -IC:\Programmi\Dev-C++\Include -IC:\Programmi\Dev-C++\Include\G++ -c -o main.o main.cpp

    C:\Programmi\Dev-C++\Bin\g++ -IC:\Programmi\Dev-C++\Include -IC:\Programmi\Dev-C++\Include\G++ -c -o calcolatrice.o calcolatrice.cpp

    C:\Programmi\Dev-C++\Bin\g++ -LC:\Programmi\Dev-C++\Lib\ -o prova.exe main.o calcolatrice.o


    Eventualmente si potrebbe usare un "Makefile". Ma con il Dev-C++ credo sia meglio creare un progetto all'interno dell'IDE.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

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.