You are currently viewing Modo Semplice Per Correggere Errori Gcc, Riferimento Non Definito Con Main

Modo Semplice Per Correggere Errori Gcc, Riferimento Non Definito Con Main

 

Aggiornato

  • 1. Scarica ASR Pro
  • 2. Esegui il programma
  • 3. Fai clic su "Scansiona ora" per trovare e rimuovere eventuali virus sul tuo computer
  • Accelera il tuo computer oggi con questo semplice download.

    Se scopri che l’errore gcc di una persona è per main undefined, questa guida potrebbe aiutarti. G.Errore: un riferimento indefinito per ‘main’ nei programmi C è un errore molto assurdo, perché il programmatore si verifica quando la funzione evita () non esiste nel software. Se hai usato l’attività principale () per non parlare dell’errore che esiste ancora, tutti dovrebbero controllare l’ortografia della funzione principale ().

     

     

    G.

    La tua funzione chiave potrebbe essere stata specificata, questo come pre-elaborazione.Per vedere cosa fa la pre-elaborazione, prova gcc -C -E es3.c> es3.i , quindi investi in un editor efficiente per ispezionare l’es3.i lanciato (e rivedi main v).

    All'inizio potresti volere (dato che sei un principiante)

    . Raccogliere

      gcc -wall -gr -c es3.c  gcc -wall -g es3.o Es3 

    Il banner

    -o -wall potrebbe essere estremamente importante e utilizzerai sempre questo strumento. Dice al tuo compilatore di dare alla tua azienda (quasi) tutti gli avvertimenti. E dovresti sempre ascoltare in ordine per i terribili avvertimenti, ovvero correggere il documento sorgente es3.C fino a quando non smetti di ricevere terribili avvertimenti.

    Il flag -g è forse anche importante perché richiede gcc con informazioni di debug di scrittura su quel particolare oggetto e anche eseguibile. I clienti possono quindi utilizzare un debugger (come in gdb ) per eseguire il debug della preparazione. y.

    Per ottenere i modelli di lista effettivi di un oggetto o eseguibile si desidera nm .

    Ovviamente sto assumendo che stai usando un software GNU/Linux (e ti suggerisco di contattare GNU/Linux se non lo stai già usando).

    Leggi prima le FAQ: https://github.com/edenhill/librdkafka/wiki/FAQ

    Volevo solo raccoglierne un altro nella directory cpp_maker di CentOS 8.3, ma si è verificato un errore.
    Compila insieme a g ++ -oproduzent_cpp.cpp -lrdkafka ++

    Su:

      /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/crt1.o: nella funzione ` _start ':(.text + 0x24): riferimento non definito a: "main"Errore Collect2: ld ha raggiunto lo stato di uscita 1 

    IMPORTANTE: cercare sempre di riprodurre il problema riscontrato nell'ultima versione disponibile su richiesta (vedi https://github.com/edenhill/librdkafka/releases), se non viene riprodotto in nessuna versione più recente, provare a risolvere esso. è stato fissato da tempo.

    IMPORTANTE: emetteremo timbri ogni volta che la lista di controllo non è stata completata di recente.

    Fornisci le seguenti informazioni:

    • Diversità Blibrdkafka (numero di versione o tag Git): <1.6.0>
    • Versione Apache Kafka: <2.13-2.7.0>
    • librdkafka client config:
    • Sistema operativo:
    • Invio dei log (con debug è uguale a .. e facoltativamente) con librdkafka
    • Fornire le dichiarazioni di controllo del broker.
    • Problema critico: non critico

    Voglio compilare CentOS 8.3 nella directory è importante 1 "producter_cpp" ma ho commesso un errore.
    Compila combinato con g ++ -oproduzent_cpp.cpp -lrdkafka ++

    IMPORTANTE: Cerca sempre di riprodurre la pubblicazione nell'ultima versione rilasciata (vedi https://github.com/edenhill/librdkafka/releases) poiché non può essere riprodotta nella serie attuale verrà risolto . p>

    IMPORTANTE: Verremo riempiti se la lista di controllo non è ancora completa.

    • Versione librdkafka (numero di versione completo o tag Git): <1.6.0>
    • Pacchetto Apache Kafka: <2.13--2.7.0>
    • configurazione client librdkafka:
    • Sistema operativo:
    • Invia i log (con debug implica .. se necessario) librdkafka
    • Fornire estratti del broker di log.
    • Problema critico: non critico
      /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/crt1.o: solo all'interno della funzione `_start ':(.text + 0x24) Non definito: progetto su "principale"Collect2> Errore: ld ha restituito 1 stato di permesso 

    Esempio

    Uno degli errori di compilazione più comuni richiede durante il collegamento. L’errore è simile a questo:

      $ gcc undefined_reference.c/tmp/ccoXhwF0.o: Esegue `main':undefined_reference.c :(.testo scritto + 0x15): riferimento errore non definito: `foo 'Collect2: ld ripristinato 1 stato di uscita$ 

    gcc error undefined reference to main

      int foo (void);int central (int argc, char ** argv)    int foo_val;    foo_val significa foo ();    ritorno foo_val; 

    Vediamo una sorta di dichiarazione rispetto a foo ( int foo (); ), ma non può esserci alcuna definizione (la funzione effettiva). Abbiamo fornito al compilatore le intestazioni della funzione, ricorda, tuttavia, non esisteva tale funzione da nessuna parte, quindi la fase di compilazione è terminata e il linker termina continuamente con un errore Riferimento non definito .
    Per correggere questo errore nel nostro piccolo periodo, dobbiamo solo pubblicare la definizione quando si tratta di foo:

    gcc error undefined reference to sure you main

      / * Spiegazione di foo 1 . /int foo (vuoto);/ * Definizione di foo 6 . /int foo (vuoto)    ritorno 5;int significativo (int argc, char ** argv)    int foo_val;    foo_val è uguale a foo ();    ritorno foo_val; 

    Questo codice ora è effettivamente compilato. Un’altra situazione si verifica quando il sorgente foo() è effettivamente nel tuo sorgente separato foo file.c (e c’è un’intestazione foo. H per dichiarare foo() , che può essere in foo.c semplicemente perché così come undefined_reference.c ). Quindi correggi il problema che entrambi colleghiate il file dell’articolo foo.c , figuriamoci undefined_reference.c o compilate due file di base:

      usd gcc -c undefined_reference.c$ gcc -c foo.c$ gcc -o programma di lavoro undefined_reference.o foo.o$ 
      buck gcc -to Working_program undefined_reference.c foo.c$ 

    Questa è davvero una borsa da viaggio più complessa che utilizza la tua biblioteca locale come nel codice principale:

      #include #include #include int main (int argc, char ** argv)    prima doppia;    doppio secondo;    produttività doppia;    (argc assumendo! = 3)            fprintf (stderr, "Uso:% s    n", argv [0]);        Restituisce EXIT_FAILURE;        / * Converti la digitazione dell'utente in numeri, molti altri controlli di errore     (vuoto) deve essere fatto ora. * /    prima è uguale a strtod (argv [1], NULL);    secondo implica strtod (argv [2], NULL);    per * Usa la funzione pow() perché associata libm - questo risulterà in un collegamento     * questo codice verrà assemblato con libm solo in caso di errore! 5 . /    Achievement = eccellente (primo, secondo);    printf ("% fahrenheit to% f =% f  n", primo, secondo, cardinalità);    Restituisci EXIT_SUCCESS; 

    Lo scambio è sintatticamente corretto in generale, la dichiarazione durante pow () esiste perché per quanto riguarda #include , quindi proviamo a farlo e otteniamo ma errore di collegamento che ha prodotto questo:

      $ gcc no_library_in_link.c -o no_library_in_link/tmp/ccduQQqA.o: Nel lavoro "principale":no_library_in_link.c :(. Articoli non definiti + 0x8b): link a `pow 'Collect2: Errore: ld ha rimbalzato 1 stato di uscita$ 

    Questo perché non tutte le definizioni per pow() vengono trovate durante la fase di associazione. Per risolvere questo tipo di problema, dobbiamo specificare con successo che i membri del nostro staff vogliono connettersi a uno studio di matematica di combattimento chiamato libm -lm pit. (Nota che ci sono piattaforme, ad esempio, dove mai macOS -lm non è richiesto, tranne se in get undefined link, selezione richiesta.)

    Quindi, usiamo di nuovo la parola “livello assembly”, questa volta di solito una libreria locale (dopo i file sorgente o modello):

      usd gcc no_library_in_link.c -lm -o library_in_link_cmd$ ./library_in_link_cmd a causa di 42.000.000 alla potenza di 4.000.000 corrisponde fino a 16.000.000$ 

    Aggiornato

    Sei stanco della lentezza del tuo computer? Infastidito da messaggi di errore frustranti? ASR Pro è la soluzione per te! Il nostro strumento consigliato diagnosticherà e riparerà rapidamente i problemi di Windows, aumentando notevolmente le prestazioni del sistema. Quindi non aspettare oltre, scarica ASR Pro oggi!


     

     

    Accelera il tuo computer oggi con questo semplice download.

     

     

     

    Gcc Error Undefined Reference To Main
    Gcc-fout Ongedefinieerde Verwijzing Naar Hoofd
    Błąd Gcc Niezdefiniowane Odniesienie Do Głównego
    Erreur Gcc Référence Non Définie Au Principal
    Ошибка Gcc Undefined Ссылка на главную
    Error Gcc Referencia Indefinida A Main
    Referência Indefinida Do Erro Gcc Ao Principal
    Gcc-Fehler Undefinierter Verweis Auf Main
    메인에 대한 Gcc 오류 정의되지 않은 참조
    Gcc-fel Odefinierat Referens Till Huvud