Recebo este erro, mas não sei como corrigi-lo.
Estou usando o Visual Studio 2013. Fiz o nome da solução MyProjectTest Esta é a estrutura da minha solução de teste:
- function.h
#ifndef MY_FUNCTION_H
#define MY_FUNCTION_H
int multiple(int x, int y);
#endif
-function.cpp
#include "function.h"
int multiple(int x, int y){
return x*y;
}
- main.cpp
#include <iostream>
#include <cstdlib>
#include "function.h"
using namespace std;
int main(){
int a, b;
cin >> a >> b;
cout << multiple(a, b) << endl;
system("pause");
return 0;
}
Eu sou um iniciante; este é um programa simples e funciona sem erros. Li na internet e me interessei pelo teste unitário, então criei um projeto de teste:
Arquivo> Novo> Projeto ...> Instalado> Modelos> Visual C ++> Teste> Projeto de Teste de Unidade Nativa>
Nome: UnitTest1 Solução: Adicionar à solução Em seguida, o local mudou automaticamente para o caminho da solução aberta atual Esta é a estrutura de pastas da solução:
Eu só editei o arquivo unittest1.cpp:
#include "stdafx.h"
#include "CppUnitTest.h"
#include "../MyProjectTest/function.h"
using namespace Microsoft::VisualStudio::CppUnitTestFramework;
namespace UnitTest1
{
TEST_CLASS(UnitTest1)
{
public:
TEST_METHOD(TestEqual)
{
Assert::AreEqual(multiple(2, 3), 6);
// TODO: Your test code here
}
};
}
Mas recebo o erro LNK2019: símbolo externo não resolvido. Eu sei que a implementação da função múltipla está faltando. Tentei excluir o arquivo function.cpp, substituí a declaração pela definição e ele foi executado. Mas escrever a declaração e a definição no mesmo arquivo não é recomendado. Como posso corrigir esse erro sem fazer isso? Devo substituir por #include "../MyProjectTest/function.cpp"
no arquivo unittest.cpp?
(Não sou muito bom em inglês. Obrigado)
.LIB
extensão de arquivo. Para complicar as coisas ... as bibliotecas de vínculo dinâmico (isto é *.DLL
) podem ter uma biblioteca de importação que também tem uma .LIB
extensão de arquivo. Esta biblioteca de importação lista todos os recursos fornecidos pelo *.DLL
. Para obter mais informações, leia: Guia do Iniciante para