/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crt1.o:nafunção`_start':(.text + 0x20):未定义引用`主要

我的问题不是程序,但我把它放在有必要的情况下。 我一直在Windows版本上使用VS,现在在使用Linux版本。我遇到问题,因此一个简单的程序可以识别类的方法,出现错误: 没有.h头的较简单程序可以正常编译。 我需要做些什么来解决此问题?在Windows版本中,程序运行

错误:

/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crt1.o: in the _start 'function: (.text + 0x20): undefined reference tomain ' collect2: error: ld returned 1 exit status

[main.cpp 2020-05-23 17: 28: 09.707] ,, / tmp / ccJJYd6a.o: in the main 'function: main.cpp :(. text + 0x1f): undefined reference toComplex :: Complex () ' main.cpp :(. text + 0x2b): undefined reference to Complex :: Complex () ' main.cpp :(. text + 0x37): undefined reference toComplex :: Complex () ' main.cpp :(. text + 0x43): undefined reference to Complex :: lerComplexo () ' main.cpp :(. text + 0x4f): undefined reference toComplex :: print () ' main.cpp :(. text + 0x5b): undefined reference to Complex :: lerComplexo () ' main.cpp :(. text + 0x67): undefined reference toComplex :: print () ' collect2: error: ld returned 1 exit status

Main.cpp

    #include stdio.h
    #include"Complexo.h"

     int main()
    {
     Complexo a,b,c;

a.lerComplexo();
a.imprimir();

b.lerComplexo();
b.imprimir();



 }

复杂度

#define _CRT_SECURE_NO_WARNINGS
#include "Complexo.h"
#include<stdio.h>
#include<math.h>


 Complexo::Complexo()
 {
   re = 0;
   im = 0;
 }

 Complexo::Complexo(float r, float i)
 {
   re = r;
   im = i;
 }

 void Complexo::atribuir(float r, float i)
 {
   float novo_re = r;
   float novo_im = i;
 }

 void Complexo::lerComplexo()
 {
   printf("Parte real:");
   scanf("%f", &re);
   printf("\n");
   printf("Parte imaginaria:");
   scanf("%f", &im);
   printf("\n");

 }

 void Complexo::imprimir()   // escrever complexo para o monitor  
 {
   printf("%.1f +%.1fi\t", re, im);
 }


 float Complexo::modulo()  // devolve módulo do número 
 {
   float m;
   m = float(sqrt(pow(re, 2) + pow(im, 2)));
   return m;
 }
 float Complexo::argumento() // devolve argumento do número 
 {
   float arg;
   arg = float(atan2(im, re));
   return arg;
 }

 Complexo Complexo::conjugado()  // devolve o conjugado do número  
 {
   Complexo c;
   c.re = re;
   c.im = -im;
   return c;
  }
 Complexo Complexo::simetrico()  // devolve o simétrico do numero
 {
   Complexo s;
   s.re = re * (-1);
   s.im = im * (-1);
   return s;
 }
 Complexo Complexo::potencia(float exp)  // devolve potência do número
 {
   Complexo p; 
   float mod;
   mod = pow(modulo(), exp);
   p.re = mod * cos(exp * argumento());
   p.im = mod * sin(exp * argumento());
   return p;
 }

       // operações entre 2 complexos  
 Complexo Complexo::operator +(const Complexo& c) // adição   
 {
   Complexo res;
   res.re = re + c.re;
   res.im = im + c.im;
   return res;

  }
  Complexo Complexo::operator -(const Complexo& c) // subtração  
  {
    Complexo res;
    res.re = re - c.re;
    res.im = im - c.im;
    return res;
   }
  Complexo Complexo::operator *(const Complexo& c) // multiplicação 
  {
    Complexo res;
    res.re = re * c.re - im * c.im;
    res.im = re * c.im + im * c.re;
    return res;
   }
  Complexo Complexo::operator /(const Complexo& c) // divisão    
 {
    Complexo num, den, res;
    num = Complexo(re, im);
    den = c;
    num = *this * den.conjugado();
    den = den * den.conjugado();
    return Complexo(num.re / den.re, num.im / den.re);



    }

    // operações entre um complexo (operador da esquerda) e um real (operador da  // 
        direita)  

  Complexo Complexo::operator *(float f)
  {
    Complexo res;
    res.re = re * f;
    res.im = im * f;
    return res;

   }
  Complexo Complexo::operator /(float f)
  {
    Complexo res;
    res.re = re / f;
    res.im = im / f;
    return res;

  }

复杂度

    #pragma once  
    class Complexo
    {
    private:
      float re, im;
    public:
      Complexo();   // Construtor cria um número nulo  
      Complexo(float r, float i);

void atribuir(float r, float i);
void lerComplexo();  // ler complexo do teclado  
void imprimir();   // escrever complexo para o monitor  

float real() { return re; } // devolve coeficiente real  
float imaginario() { return im; } // devolve coeficiente imaginário  
float modulo();  // devolve módulo do número  
float argumento(); // devolve argumento do número  
Complexo conjugado();  // devolve o conjugado do número  
Complexo simetrico();  // devolve o simétrico do número 
Complexo potencia(float exp);  // devolve potência do número 

// operações entre 2 complexos  
Complexo operator +(const Complexo& c); // adição   
Complexo operator -(const Complexo& c); // subtração  
Complexo operator *(const Complexo& c); // multiplicação  
Complexo operator /(const Complexo& c); // divisão     

// operações entre um complexo (operador da esquerda) e um real (operador da  // direita)  
Complexo operator *(float f);
Complexo operator /(float f);

};