J'obtiens cette erreur, mais je ne sais pas comment la corriger.
J'utilise Visual Studio 2013. J'ai créé le nom de la solution MyProjectTest Voici la structure de ma solution de test:
- fonction.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;
}
Je suis un débutant; c'est un programme simple et il fonctionne sans erreur. J'ai lu sur Internet et je me suis intéressé au test unitaire, j'ai donc créé un projet de test:
Fichier> Nouveau> Projet ...> Installé> Modèles> Visual C ++> Test> Projet de test d'unité native>
Nom: UnitTest1 Solution: Ajouter à la solution Ensuite, l'emplacement est automatiquement basculé vers le chemin de la solution ouverte actuelle Voici la structure de dossiers de la solution:
J'ai seulement édité le fichier 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
}
};
}
Mais j'obtiens l'erreur LNK2019: symbole externe non résolu. Je sais que l'implémentation de la fonction multiple est manquante. J'ai essayé de supprimer le fichier function.cpp et j'ai remplacé la déclaration par la définition, et elle a fonctionné. Mais écrire à la fois la déclaration et la définition dans le même fichier n'est pas recommandé. Comment puis-je corriger cette erreur sans faire cela? Dois-je remplacer par #include "../MyProjectTest/function.cpp"
dans le fichier unittest.cpp?
(Je ne suis pas très bon en anglais. Merci)
.LIB
extension de fichier. Pour compliquer les choses ... les bibliothèques de liens dynamiques (c'est-à-dire *.DLL
) peuvent avoir une bibliothèque d'importation associée qui a également une .LIB
extension de fichier. Cette bibliothèque d'importation répertorie tous les goodies fournis par le *.DLL
. Pour plus d'informations, veuillez lire: Guide du débutant sur les