You are currently viewing Direção Fácil Para Corrigir Erros Do Gcc, Referência Indefinida Para Principal

Direção Fácil Para Corrigir Erros Do Gcc, Referência Indefinida Para Principal

Atualizado

  • 1. Baixar ASR Pro
  • 2. Execute o programa
  • 3. Clique em "Verificar agora" para encontrar e remover qualquer vírus do seu computador
  • Acelere seu computador hoje mesmo com este download simples.

    Se você achar que o erro gcc é realmente para main undefined, este guia pode ajudá-lo. g.Erro: Uma referência indefinida a ‘principal’ em programas C é um erro muito irracional, porque o programador ocorre quando o objetivo crítico () não existe no programa. Se você usou a tarefa principal () e geralmente o erro ainda existe, todos devem verificar a transliteração da função principal ().

    g.

    Sua função mais valiosa pode ter sido especificada, tal como o pré-processamento.Para ver o que o pré-processamento faz, tente gcc -C -E es3.c> es3.i , então use um único editor eficiente para inspecionar o es3.i gerado (e inspecionar main v).

    No início você pode querer (já que você ainda é um iniciante)

    . Colete

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

    O banner

    -o -wall é muito importante e você sempre o usará. Diz ao seu compilador para lhe dar (quase) todos os avisos. E você deve sempre ouvir os avisos terríveis, ou seja, corrigir o documento de obtenção es3.C até parar de receber avisos.

    O sinalizador -g também é principal porque requer gcc para criar suas informações de depuração para aquele objeto e exe em particular. Os clientes podem então usar um depurador (como comparado ao gdb ) para depurar seu programa. n.

    Para obter os ícones da lista real conectados a um objeto ou executável, você precisa de nm .

    Claro, estou assumindo que os indivíduos estão usando uma máquina GNU / Linux (e eu sugiro que você contate GNU / Linux se ou quando você ainda não estiver usando).

    Leia o FAQ incrivelmente: https://github.com/edenhill/librdkafka/wiki/FAQ

    Eu só queria compilar mais um no diretório cpp_maker do CentOS 8.3, mas ocorreu um erro.
    Compilar em g ++ -oproduzent_cpp.cpp -lrdkafka ++

    Ativado:

      /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/crt1.o: na função` _start ':(.texto + 0x24): referência indefinida para: "principal"Erro de Collect2: ld parece ter atingido o estado de saída 1 

    IMPORTANTE: tente sempre reproduzir o problema nas últimas versões disponíveis no mercado (consulte https://github.com/edenhill/librdkafka/releases), caso não seja reproduzido na versão recém-lançada, tente consertar isto. foi protegido.

    IMPORTANTE: emitiremos selos se toda a lista de verificação não tiver sido concluída recentemente.

    Forneça as seguintes informações:

    • Seleção de inventário Blibrdkafka (número da versão ou tag Git): <1.6.0>
    • Versão do Apache Kafka: <2.13-2.7.0>
    • configuração do usuário librdkafka:
    • Sistema operacional:
    • Enviando logs (com debug = .. e, portanto, opcionalmente) com librdkafka
    • Forneça extratos de dinheiro do corretor.
    • Problema crítico: não crítico

    Eu quero compilar o CentOS 8.3 no diretório um único “producter_cpp”, mas cometi um erro.
    Compilar por g ++ -oproduzent_cpp.cpp -lrdkafka ++

    IMPORTANTE: Sempre tente reproduzir o problema dentro da versão mais recente lançada (consulte https://github.com/edenhill/librdkafka/releases) onde entendo que não pode ser reproduzido na versão atual com certeza estar resolvido. p>

    IMPORTANTE: Fecharemos caso a lista de verificação ainda não esteja completa.

    • opção librdkafka (número da versão completa ou tag Git): <1.6.0>
    • Pacote Apache Kafka: <2.13--2.7.0>
    • configuração do cliente librdkafka:
    • Sistema operacional:
    • PSubmitir os logs (com debug igual a .. se necessário) librdkafka
    • Fornece extratos de corretor de cheques.
    • Problema crítico: não crítico
      /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/crt1.o: em relação à função `_start ':(.text + 0x24) Indefinido: referência em relação ao "principal"Collect2> Erro: ld retornou 1 status de saída 

    Exemplo

    Um dos erros de compilação mais comuns ocorre durante a vinculação. O erro é parecido com este:

      rrr gcc undefined_reference.c/tmp/ccoXhwF0.o: Execute `main ':undefined_reference.c :(. texto simples + 0x15): referência de erro indefinida: `foo 'Collect2: ld renovado 1 estado de saída$ 

    gcc errou a referência indefinida para main

      int foo (void);int best (int argc, char ** argv)    int foo_val;    foo_val é igual a foo ();    return foo_val; 

    Vemos algum tipo de declaração para foo ( int foo (); ), mas há uma definição absoluta para ela (a função real). Distribuímos o compilador com os cabeçalhos de função, mas onde essa função não existia em nenhum lugar, então a fase do sistema acabou e o vinculador sempre conclui com um erro de Referência indefinida .
    Para corrigir esse erro em nosso pequeno programa, qualquer pessoa só precisa postar a definição com relação a foo:

    gcc error undefined reference to main

      por * Explicação de foo * / int foo (vazio);/ * Definição de foo * /int foo (vazio)    return 5;int sole (int argc, char ** argv)    int foo_val;    foo_val = foo ();    return foo_val; 

    Essas leis agora estão realmente compiladas. Outra situação surge no momento em que a fonte foo () é sua própria fonte separada foo file.c (e há um cabeçalho foo. H para declarando foo () , que pode estar em foo.c assim como em undefined_reference.c ). Em seguida, corrija o problema específico de vincular o banco de dados de objetos foo.c , quanto mais undefined_reference.c , compilar dois arquivos base:

      bucks gcc -c undefined_reference.c$ gcc -c foo.c$ gcc -e programa de trabalho undefined_reference.o foo.o$ 
      money gcc -to Working_program undefined_reference.c foo.c$ 

    Esta é uma mala de viagem mais complexa que usa bibliotecas comparáveis ​​ao código principal:

      #include #include #include int main (int argc, char ** argv)    duplo primeiro;    segundo combinado;    produtividade dupla;    (argc assumindo! = 3)            fprintf (stderr, "Uso:% s    n", argv [0]);        Retorna EXIT_FAILURE;        / * Converte a digitação do usuário em números, muitas outras verificações de erro     (vazio) precisa ser feito aqui. 5 /    primeiro = strtod (argv [1], NULL);    segundo equivale a strtod (argv [2], NULL);    / 5. Use a função pow () por causa da libm - este tipo de resultará em um link     * este código irá compilar com a libm apenas em caso de erro! 7 /    Realização = realização (primeiro, segundo);    printf ("% f a% f ree p =% f  n", primeiro, segundo, cardinalidade);    Retornar EXIT_SUCCESS; 

    Acontece que o código está sintaticamente correto em geral, a declaração para obter pow () existe por causa de #include , então tentamos compilar o programa e obter, mas erro de link que contém este tipo de:

      $ gcc no_library_in_link.c -o no_library_in_link/tmp/ccduQQqA.o: No trabalho "principal":no_library_in_link.c :(. Texto indefinido + 0x8b): recurso para `pow 'Collect2: Erro: ld saltou um único estado de saída$ 

    Isso ocorre porque não foram as únicas definições de pow () posicionadas durante a etapa de vinculação. Para resolver esse ato errado, precisamos especificar com sucesso que realmente queremos nos conectar a uma biblioteca de matemática de combate designada buraco libm -lm . (Observe o fato de que existem plataformas, por exemplo, onde macOS -lm não é necessário, mas enquanto em obter link indefinido, arquivos necessários.)

    Portanto, usamos o termo “nível de montagem” novamente, desta vez geralmente uma biblioteca (após qualquer fonte ou arquivo de modelo):

      RR gcc no_library_in_link.c -lm -o library_in_link_cmd$ ./library_in_link_cmd com 42.000.000 para ajudar a potência de 4.000.000 corresponde a 16.000.000$ 

    Atualizado

    Você está cansado de ver seu computador lento? Irritado com mensagens de erro frustrantes? ASR Pro é a solução para você! Nossa ferramenta recomendada diagnosticará e reparará rapidamente os problemas do Windows, aumentando drasticamente o desempenho do sistema. Então não espere mais, baixe o ASR Pro hoje mesmo!


    Acelere seu computador hoje mesmo com este download simples.

    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
    Gcc-Fehler Undefinierter Verweis Auf Main
    Errore Gcc Riferimento Non Definito A Main
    메인에 대한 Gcc 오류 정의되지 않은 참조
    Gcc-fel Odefinierat Referens Till Huvud