Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [C++] Errori compilazione

    Compilando un mio progetto C++ ottengo i seguenti errori:
    C:\Users\Io\Desktop\s>mingw32-make
    gcc main.cc
    C:\Users\Io\AppData\Local\Temp/ccAncaaa.o(.text+0xd):main.cc: undefined refer
    ence to `std::string::size() const'
    C:\Users\Io\AppData\Local\Temp/ccAncaaa.o(.text+0x60):main.cc: undefined refe
    rence to `std::string:perator[](unsigned int) const'
    C:\Users\Io\AppData\Local\Temp/ccAncaaa.o(.text+0x9f):main.cc: undefined refe
    rence to `std::string:perator[](unsigned int) const'
    C:\Users\Io\AppData\Local\Temp/ccAncaaa.o(.text+0xce):main.cc: undefined refe
    rence to `std::string:perator[](unsigned int) const'
    C:\Users\Io\AppData\Local\Temp/ccAncaaa.o(.text+0x12b):main.cc: undefined ref
    erence to `__gxx_personality_sj0'
    C:\Users\Io\AppData\Local\Temp/ccAncaaa.o(.text+0x168):main.cc: undefined ref
    erence to `operator new(unsigned int)'
    C:\Users\Io\AppData\Local\Temp/ccAncaaa.o(.text+0x185):main.cc: undefined ref
    erence to `Pezzo::Pezzo(Colore)'
    C:\Users\Io\AppData\Local\Temp/ccAncaaa.o(.text+0x1a1):main.cc: undefined ref
    erence to `operator delete(void*)'
    C:\Users\Io\AppData\Local\Temp/ccAncaaa.o(.text+0x1d1):main.cc: undefined ref
    erence to `Pezzo::getColore()'
    C:\Users\Io\AppData\Local\Temp/ccAncaaa.o(.text+0x1e9):main.cc: undefined ref
    erence to `std::cout'
    C:\Users\Io\AppData\Local\Temp/ccAncaaa.o(.text+0x1ee):main.cc: undefined ref
    erence to `std::basic_ostream<char, std::char_traits<char> >& std:perator<< <s
    td::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char
    const*)'
    C:\Users\Io\AppData\Local\Temp/ccAncaaa.o(.text+0x1ff):main.cc: undefined ref
    erence to `std::cout'
    C:\Users\Io\AppData\Local\Temp/ccAncaaa.o(.text+0x20b):main.cc: undefined ref
    erence to `std::basic_ostream<char, std::char_traits<char> >& std:perator<< <s
    td::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char
    const*)'
    C:\Users\Io\AppData\Local\Temp/ccAncaaa.o(.text+0x249):main.cc: undefined ref
    erence to `std::ios_base::Init::Init()'
    C:\Users\Io\AppData\Local\Temp/ccAncaaa.o(.text+0x264):main.cc: undefined ref
    erence to `std::ios_base::Init::~Init()'
    collect2: ld returned 1 exit status
    mingw32-make: *** [main.o] Error 1
    La cosa che mi stupisce è che con altri compilatori non li ottengo, sapete dirmi a cosa sono dovuti?

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Quote Originariamente inviata da starcraftworld Visualizza il messaggio
    Compilando un mio progetto C++ ottengo i seguenti errori:

    La cosa che mi stupisce è che con altri compilatori non li ottengo, sapete dirmi a cosa sono dovuti?
    Difficile dirlo ... potrebbe mancare l'include <string> ...

    Comunque, devi per forza usare mingw ? Non mi pare sia il massimo per Windows ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Ho messo anche l'include <string> ma mi da gli stessi errori.
    Se hai altri compilatori da consigliarmi benvenga, purchè consentano di compilare tramite makefile.

  4. #4
    Devi compilare con g++, non gcc, altrimenti non viene fatto il linking con la libreria standard C++.

    @oregon: attualmente cross-compiliamo roba abbastanza grossa con MinGW-w64 e non abbiamo problemi. L'unica accortezza è evitare come la peste le build con gestione eccezioni stile "SJLJ", che in determinate circostanze ci hanno dato problemi di performance.
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Quote Originariamente inviata da MItaly Visualizza il messaggio
    attualmente cross-compiliamo roba abbastanza grossa con MinGW-w64 e non abbiamo problemi.
    MinGW e tutti i derivati del GCC esistono in realtà con l'esclusivo scopo del porting da linux a windows, e più in generale per consentire un approccio multipiattaforma usando come base un singolo front-end. Ma la percentuale di programmatori che realmente necessita di lavorare in tale modo assomiglia al prefisso teleselettivo internazionale della Tanzania: con due o tre zeri davanti.

    I comuni mortali, invece, come ripeto sempre, faranno bene ad usare sempre e solo compilatori nativi dell'ambiente mainstream target. E' una questione di:

    1) Attitudine al buon ordine mentale. Esistono almeno tre dozzine di compilatori nativi per Windows, mezza dozzina dei quali sono disponibili gratuitamente e con migliaia di pagine di documentazione, che sia PDF o WinHelp poco importa. Perché complicarsi la vita scegliendo un qualcosa di alieno?

    2) Investimento per il futuro. Siamo in Italia e un domani lo studente o il freelance lavorerà con probabilità p tendente a uno per e con aziende mainstream che conoscono e usano solo compilatori nativi mainstream per Windows. In caso contrario, c'è comunque tutto il tempo in seguito per imparare ad usare GCC e le sue mille peculiarità, vedi VLA etc.

    3) Open opportunities. Oggi lo studente scrive un hello world e domani la solita boiatina con le liste linkate, che sono sufficientemente vanilla e system-agnostic da funzionare senza modifiche anche su un HP/UX e magari su QNX. Ma un giorno potrebbe voler sfruttare davvero a fondo le librerie e i framework nativi, interagendo sul serio col SO sottostante, senza ulteriori layer di compabilità ammazzaprestazioni interposti. Questo è possibile solo con un numero ristretto di compilatori nativi.

    Per questi ordini di motivi, anche se i porting di GCC in qualche maniera "funzionano" (ormai quella roba, in un modo o nell'altro, vedi DJGPP, è in giro da più di vent'anni), praticamente nessuno li consiglia a neofiti, studenti, freelance e più in generale a chiunque non ne abbia una esplicita, riconosciuta ed espressa necessità.
    Ultima modifica di M.A.W. 1968; 19-11-2014 a 16:09
    • Un plauso a Grisha Perelman, raro esempio di genuino anticonformismo umano e scientifico.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.