Bonsoir,
J'ai un main.cpp que voici :
rien de très compliqué, normal je l'ai simplifié à l'extrème pour tester mon problème.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 // MANAGER.cpp*: définit le point d'entrée pour l'application console. // #include "Interface_File.h" void Init(); Interface_File *IntFile; void Init() { IntFile = new Interface_File(); } int main(int argc) { Init(); return 0; }
et un le fichier Interface_File.h :
Bon je ne vous met pas le Parser.h car il inclus également d'autre .h et inutile de surcharger le sujet.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 #pragma once #include "Parser.h" class Interface_File { public: Interface_File(void); ~Interface_File(void); char* GetData(); int SetData(char* source, entity e); void SendData(char *dest, int sessionID); Parser *parser; private: char* data; };
En compilant sous Fedora 8 avec g++ j'ai une erreur de référencement de Interface_File au niveau de la ligne IntFile = new Interface_File();
Sous visula studio (à la base c un projet visual), avec l'entête pré-compilé dans le main.cpp (#include "stdafx.h") tout se passe très bien.
Lorsque je regarde le stdafx.h :
et "targetver.h" :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 // stdafx.h*: fichier Include pour les fichiers Include système standard, // ou les fichiers Include spécifiques aux projets qui sont utilisés fréquemment, // et sont rarement modifiés // #pragma once #include "targetver.h" #include <stdio.h> #include <tchar.h> // TODO*: faites référence ici aux en-têtes supplémentaires nécessaires au programme
Je ne vois rien d'indispensable que je n'ai pas reprécisé dans mon manager.cpp !!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 #pragma once // Les macros suivantes définissent la plateforme minimale requise. La plateforme minimale requise // est la version de Windows, Internet Explorer etc. qui dispose des fonctionnalités nécessaires pour exécuter // votre application. Les macros fonctionnent en activant toutes les fonctionnalités disponibles sur les versions de la plateforme jusqu'à la // version spécifiée. // Modifiez les définitions suivantes si vous devez cibler une plateforme avant celles spécifiées ci-dessous. // Reportez-vous à MSDN pour obtenir les dernières informations sur les valeurs correspondantes pour les différentes plateformes. #ifndef _WIN32_WINNT // Spécifie que la plateforme minimale requise est Windows Vista. #define _WIN32_WINNT 0x0600 // Attribuez la valeur appropriée à cet élément pour cibler d'autres versions de Windows. #endif
Bref je suis un peu perdu, pkoi g++ m'embêtes sous Fedora 8 alors qu'il ne m'embête pas sous Visual Studio ?
Merci par avance pour votre aide.
Partager