Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    3

    Compilare più file sorgenti

    Salve a tutti, possiedo Ubuntu 11 e sto dedicandomi alla programmazione in C++ per la realizzazione di videogiochi.
    Seguendo i tutorial di Lazy Foo per le librerie SDL mi sono imbattuto in più file sorgenti (3 .cpp e 3 .h) da compilare per originare un unico eseguibile, ma non so come fare. Io uso g++ da terminale, e ho provato con diverse combinazioni tenendo tutti i file nella stessa cartella /Desktop


    g++ file1.cpp file2.cpp file3.cpp `sdl-config --cflags --libs` -lSDL -lSDL_image -lSDL_ttf -lSDL_mixer -lhead1.h -lhead2.h -lhead3.h -o output.out


    g++ file1.cpp file2.cpp file3.cpp `sdl-config --cflags --libs --L/Desktop` -lSDL -lSDL_image -lSDL_ttf -lSDL_mixer -lhead1.h -lhead2.h -lhead3.h -o output.out


    g++ file1.cpp file2.cpp file3.cpp `sdl-config --cflags --libs ` -lSDL -lSDL_image -lSDL_ttf -lSDL_mixer -L/Desktop/head1.h -L/Desktop/head2.h -L/Desktophead3.h -o output.out
    ecc...


    sono molto confuso e immagino si veda, ma consultare le guide più disparate mi ha portato a generare questi mostri. potete aiutarmi?
    grazie

  2. #2
    I file .h non vanno compilati, dato che vengono inclusi dai .cpp.
    Per il resto, nel momento in cui inizi ad avere un progetto con più di un file conviene iniziare a scrivere un Makefile o roba del genere per semplificare la compilazione.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    3
    MItaly avevi ragione è bastato non includere le librerie....

    per curiosità ho provato a spostare le librerie da un'altra parte e a ricompilare ma il terminale da fatal error: qual'è il comando da terminale che dovrei dare per includere le librerie spostate nel nuovo percorso (ad es. /Desktop/Header)?
    grazie

    P.S.
    Sapevo dell'esistenza dei Makefile ma non volevo studiarne la teoria perché sto seguendo un po' troppe cose insieme adesso .

  4. #4
    Originariamente inviato da rufius
    MItaly avevi ragione è bastato non includere le librerie....
    Occhio, le librerie sono un'altra cosa... quelli sono file di header.
    per curiosità ho provato a spostare le librerie da un'altra parte e a ricompilare ma il terminale da fatal error: qual'è il comando da terminale che dovrei dare per includere le librerie spostate nel nuovo percorso (ad es. /Desktop/Header)?
    Puoi usare l'opzione -I per specificare un percorso aggiuntivo di ricerca degli header, ma in genere, se si tratta di header "locali" al tuo progetto, si usa semplicemente scrivere negli #include il percorso relativo.
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,333

    Moderazione

    Originariamente inviato da rufius
    sto dedicandomi alla programmazione in C++ per la realizzazione di videogiochi.
    Il linguaggio va indicato anche nel titolo, come da Regolamento.

    Qui l'ho aggiunto io, tienilo a mente per il futuro.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    23
    Ma usare un IDE no?
    Compilare usando la linea di comando è scomodissimo!
    Potresti usare Code::Blocks per linux.

  7. #7
    Utente bannato
    Registrato dal
    Oct 2010
    Messaggi
    1,219
    Per me in ordine di esperienza è meglio compilare così:
    da terminale -> IDE -> makefile
    Al limite quando compili col makefile puoi usare l' editor interno dell 'IDE.

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.