Visual Studio

Fermé
touite - Modifié le 27 janv. 2021 à 22:31
 Pat - 30 janv. 2021 à 13:15
Bonjour,
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:

4 réponses

Utilisateur anonyme
28 janv. 2021 à 08:10
Bonjour

Pas un grand spécialiste de C++, mais je dirais qu’il faut mettre l’extension cpp au fichier fonctionTest.c


0
Dalfab Messages postés 706 Date d'inscription dimanche 7 février 2016 Statut Membre Dernière intervention 2 novembre 2023 101
Modifié le 28 janv. 2021 à 11:03
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:
#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();
#endif
J'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.
0
charline159 Messages postés 208 Date d'inscription lundi 14 août 2017 Statut Membre Dernière intervention 22 juin 2022 1
Modifié le 28 janv. 2021 à 11:39
Merci pour vos réponses.

en fait, j'aimerais coder en C, mais au moment de créer un nouveau projet avec Visual Studio 2019, je n'ai pas vu l'option C, j'ai donc choisi C++...

est-ce une bonne idée de continuer à coder en C, en utilisant des fichiers .cpp ?
0
Dalfab Messages postés 706 Date d'inscription dimanche 7 février 2016 Statut Membre Dernière intervention 2 novembre 2023 101
28 janv. 2021 à 23:20
Visual est un compilateur C++ qui peut se restreindre au C. Je pense que tu te retrouves donc avec un langage qui est à l'intersection des 2, il sera proche du C, mais ça n'est pas vraiment du C. Pour faire du vrai C, il faut un compilateur C.
0
charline159 Messages postés 208 Date d'inscription lundi 14 août 2017 Statut Membre Dernière intervention 22 juin 2022 1 > Dalfab Messages postés 706 Date d'inscription dimanche 7 février 2016 Statut Membre Dernière intervention 2 novembre 2023
30 janv. 2021 à 11:22
d'accord, je vois, merci
je vais essayer de voir les IDE pour le C
0
Bonjour,
Je pense que soit en mettant que des libs normales, soit en compilant en mode multi-thread et debug ça devrait régler le problème.
A tester ..............;;
0