none
LNK2001 RRS feed

  • Pergunta

  • Pessoal tou com dificuldades em compila

    r um simples programa em C++.

    O programa é o seguinte:
    #include "interval.hpp" // predefined interval arithmetic
    #include <iostream>
    #include <conio.h>
    using namespace cxsc;
    using namespace std;

    int main()
    {
    interval a, b; // Standard intervals
    a = 1.0; // a = [1.0,1.0]
    b = 3.0; // b = [3.0,3.0]
    //cout << "a/b = " << a/b << endl;
    std::cout << a << std::endl;
    getch();
    return 0;
    }

    MAs sempre me retorna o seguinte erro:
    Teste.obj : error LNK2001: unresolved external symbol "class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl cxsc::operator<<(class std::basic_ostream<char,struct std::char_traits<char> > &,class cxsc::interval const &)" (??6cxsc@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@AAV12@ABVinterval@0@@Z)
    C:\Documents and Settings\Marciano\Meus documentos\Visual Studio 2005\Projects\Fuzzy\Release\Fuzzy.exe : fatal error LNK1120: 1 unresolved externals
    Build log was saved at "file://c:\Documents and Settings\Marciano\Meus documentos\Visual Studio 2005\Projects\Fuzzy\Fuzzy\Release\BuildLog.htm"
    Fuzzy - 2 error(s), 0 warning(s)


    O que pode estar acontecendo de errado?

    PS.: Tou usando o VC++ 2005. Já usei o 2008 mas os erros aumentam!

    quinta-feira, 6 de janeiro de 2011 19:10

Respostas

  • O Erro está nessa biblioteca "interval.hpp"...

    Voce pode ter esquecido de "linkar" essa biblioteca com o seu arquivo .lib

    funciona assim, digamos que eu crie uma função num arquivo .hpp

    class Vetores
    {
    public:
      void MinhaFuncao();
    }
    

    Veja que o escopo da função "MinhaFuncao" não foi criado, ele é apenas um protótipo de uma função

    isto geraria um erro igual ao seu pela falta da biblioteca que deveria ser linkada

    nesta biblioteca existe a definição desta função

    seria algo assim

    void Vetores::MinhaFuncao()
    {
      // faça algo
      int a = 0;
      int b = 7;
      int c = a+b;
      return; // só um exemplo xD
    }
    

    Para resolver isso você precisa do arquivo de extensão .lib

    a seguir coloque isto no interval.hpp:

    #pragma comment(lib, "NomeDoArquivo.lib")
    

    • Sugerido como Resposta Leonardo_Bos quarta-feira, 12 de janeiro de 2011 23:02
    • Marcado como Resposta Marciano Gonçalves quarta-feira, 12 de janeiro de 2011 23:11
    sexta-feira, 7 de janeiro de 2011 22:02

Todas as Respostas

  • O Erro está nessa biblioteca "interval.hpp"...

    Voce pode ter esquecido de "linkar" essa biblioteca com o seu arquivo .lib

    funciona assim, digamos que eu crie uma função num arquivo .hpp

    class Vetores
    {
    public:
      void MinhaFuncao();
    }
    

    Veja que o escopo da função "MinhaFuncao" não foi criado, ele é apenas um protótipo de uma função

    isto geraria um erro igual ao seu pela falta da biblioteca que deveria ser linkada

    nesta biblioteca existe a definição desta função

    seria algo assim

    void Vetores::MinhaFuncao()
    {
      // faça algo
      int a = 0;
      int b = 7;
      int c = a+b;
      return; // só um exemplo xD
    }
    

    Para resolver isso você precisa do arquivo de extensão .lib

    a seguir coloque isto no interval.hpp:

    #pragma comment(lib, "NomeDoArquivo.lib")
    

    • Sugerido como Resposta Leonardo_Bos quarta-feira, 12 de janeiro de 2011 23:02
    • Marcado como Resposta Marciano Gonçalves quarta-feira, 12 de janeiro de 2011 23:11
    sexta-feira, 7 de janeiro de 2011 22:02
  • Vlw Leornardo, tava faltando linkar mesmo....

    Agora deu certo!
    sexta-feira, 7 de janeiro de 2011 22:35