Recibo este error, pero no sé cómo solucionarlo.
Estoy usando Visual Studio 2013. Hice el nombre de la solución MyProjectTest Esta es la estructura de mi solución de prueba:
- función.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;
}
Soy un principiante; este es un programa simple y se ejecuta sin errores. Leí en Internet y me interesé en la prueba unitaria, así que creé un proyecto de prueba:
Archivo> Nuevo> Proyecto ...> Instalado> Plantillas> Visual C ++> Prueba> Proyecto de prueba de unidad nativa>
Nombre: UnitTest1 Solución: Agregar a la solución Luego, la ubicación cambió automáticamente a la ruta de la solución abierta actual Esta es la estructura de carpetas de la solución:
Solo edité el archivo 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
}
};
}
Pero obtengo el error LNK2019: símbolo externo sin resolver. Sé que falta la implementación de la función múltiple . Intenté eliminar el archivo function.cpp y reemplacé la declaración con la definición, y se ejecutó. Pero no se recomienda escribir tanto la declaración como la definición en el mismo archivo. ¿Cómo puedo solucionar este error sin hacer eso? ¿Debo reemplazar con #include "../MyProjectTest/function.cpp"
en el archivo unittest.cpp?
(No soy muy bueno en inglés. Gracias)
.LIB
extensión de archivo. Para complicar las cosas ... las bibliotecas de enlaces dinámicos (es decir *.DLL
) pueden tener una biblioteca de importación adjunta que también tiene una .LIB
extensión de archivo. Esta biblioteca de importación enumera todos los beneficios proporcionados por *.DLL
. Para obtener más información, lea: Guía para principiantes de