Visual Studio
touite
-
Pat -
Pat -
Bonjour,
j'ai essayé de rajouter un fichier .h à mon fichier main.cpp, cependant lorsque je compile, j'ai 2 erreurs :
pourtant, mes 3 fichiers sont dans le même dossier. Donc pourquoi est-ce que ça ne marche pas ? (j'utilise Visual Studio)
voici le main:
ainsi que le fichier fonctionTest.h :
et puis le fichier fonctionTest.c:
Cordialement...
j'ai essayé de rajouter un fichier .h à mon fichier main.cpp, cependant lorsque je compile, j'ai 2 erreurs :
Erreur LNK2019 symbole externe non résolu "void __cdecl test(void)" (?test@@YAXXZ) référencé dans la fonction _main ConsoleApplication1 C:\Users\Pierre\source\repos\ConsoleApplication1\ConsoleApplication1\ConsoleApplication1.obj 1
Erreur LNK1120 1 externes non résolus ConsoleApplication1 C:\Users\Pierre\source\repos\ConsoleApplication1\Debug\ConsoleApplication1.exe 1
pourtant, mes 3 fichiers sont dans le même dossier. Donc pourquoi est-ce que ça ne marche pas ? (j'utilise Visual Studio)
voici le main:
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include "fonctionTest.h"
int main()
{
test();
return 0;
}
ainsi que le fichier fonctionTest.h :
#ifndef fonctionTest_H #define fonctionTest_H void test(); #endif
et puis le fichier fonctionTest.c:
#include "fonctionTest.h"
void test(){
printf("bonjour test fonction!");
}
Cordialement...
A voir également:
- Visual Studio
- Telecharger fl studio 20 pour pc gratuit complet - Télécharger - Édition & Montage
- Visual petanque - Télécharger - Sport
- Visual c++ 2019 - Guide
- Visual paradigm - Télécharger - Gestion de données
- Photofiltre studio - Télécharger - Retouche d'image
4 réponses
Bonjour
Pas un grand spécialiste de C++, mais je dirais qu’il faut mettre l’extension cpp au fichier fonctionTest.c
Pas un grand spécialiste de C++, mais je dirais qu’il faut mettre l’extension cpp au fichier fonctionTest.c
Bonjour,
Il faut en effet avoir tous les fichiers en .cpp pour faire du C++.
C'est pourtant possible de lier des fichiers .c et des fichiers .cpp, il y a alors une chose de plus à faire. Le fichier d'entête devrait être:
Quand tu écris, les .cpp sont sont dans le même dossier, je pense que tu voulais écrire sont dans le même projet. Etre dans le même dossier ne sert à rien, par contre le projet doit bien connaître les fichiers qui sont à compiler.
Il faut en effet avoir tous les fichiers en .cpp pour faire du C++.
C'est pourtant possible de lier des fichiers .c et des fichiers .cpp, il y a alors une chose de plus à faire. Le fichier d'entête devrait être:
#ifndef FONCTIONTEST_H
#define FONCTIONTEST_H
#ifdef __cplusplus
extern "C" // on prévient le C++ que la fonction test() est en langage C
#endif
void test();
#endifJ'ai écris cela car ta fonction test() utilise print() qui est une fonction C, et ton fichier ne compilera pas en C++ car il manque un include<stdio.h> indispensable en C++
Quand tu écris, les .cpp sont sont dans le même dossier, je pense que tu voulais écrire sont dans le même projet. Etre dans le même dossier ne sert à rien, par contre le projet doit bien connaître les fichiers qui sont à compiler.