Usuário com melhor resposta
LNK2001

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!
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
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
-