Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Henrique Barcelos

[Resolvido] Erro na compilação

Recommended Posts

Fala galera, beleza?

 

Estou começando agora com C++ (faço 2º sem de Eng. da Computação na UFSCar).

 

Minha primeira classe envolve números complexos, estava fazendo o overload do operador +... Mandei compilar mas apareceu os seguintes erros:

 

In file included from c:/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/backward/iostream.h:31,

                 from intro.cpp:2:

c:/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/backward/backward_warning.h:32:2: warning: #warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X.h> header for C++ includes, or <iostream> instead of the deprecated header <iostream.h>. To disable this warning use -Wno-deprecated.

mkdir -p dist/Debug/MinGW-Windows
gcc.exe     -o dist/Debug/MinGW-Windows/introdu__o_c__ build/Debug/MinGW-Windows/intro.o  
build/Debug/MinGW-Windows/intro.o: In function `ZSt17__verify_groupingPKcjRKSs':

c:/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/locale_facets.tcc:2498: undefined reference to `std::string::size() const'

c:/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/locale_facets.tcc:2507: undefined reference to `std::string::operator[](unsigned int) const'

c:/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/locale_facets.tcc:2509: undefined reference to `std::string::operator[](unsigned int) const'

c:/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/locale_facets.tcc:2512: undefined reference to `std::string::operator[](unsigned int) const'

build/Debug/MinGW-Windows/intro.o: In function `Z41__static_initialization_and_destruction_0ii':

c:/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/iostream:77: undefined reference to `std::ios_base::Init::Init()'

c:/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/iostream:77: undefined reference to `std::ios_base::Init::~Init()'

collect2: ld returned 1 exit status

make[2]: *** [dist/Debug/MinGW-Windows/introdu__o_c__.exe] Error 1
make[2]: Leaving directory `/d/NetBeansProjects/Introdução C++'
make[1]: *** [.build-conf] Error 2
make[1]: Leaving directory `/d/NetBeansProjects/Introdução C++'
make: *** [.build-impl] Error 2
CONSTRUIR FALHOU (valor da saída 2, tempo total:  1s)

Aqui está o código, comentei a classe para saber se o problema era com ela (bom, só pra ter ctza, pq obviamente não é):

#include <stdlib.h>
#include <iostream.h>
#include <string>
using namespace std;

/*class complexo{
private:
    float r, im;
public:
    complexo(float _r, float _im);
    complexo operator + (complexo a);
    ~complexo();
};

complexo::complexo(float r, float im){
    this->r = r;
    this->im = im;
}

complexo complexo::operator+(complexo a){
    return complexo(r+a.r, im+a.im);
}

complexo::~complexo(){
    
}*/

int main(int argc, char** argv) {
    
    return (EXIT_SUCCESS);
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala Rick, tranquilo??

 

Realmente, o teu problema não é com a classe, mas sim com as bibliotecas.

As bibliotecas do C++ não possuem o sufixo .h

E para incluir as bibliotecas do C, em um código C++ não use o ".h" também, mas adicione um "c" no início.

No seu caso ficaria:

#include <cstdlib>
#include <iostream>
#include <string> //isso é para std::string. As funcionalidades do c são obtidas em <cstring>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa, valeu a dica aí...

 

Ontem à noite eu consegui resolver o problema mudando de compilador, aí funcionou... Vlw

 

Pois é, to vendo que a partir de agora minha participação no fórum de C++ vai crescer muito... :unsure:

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.