Problème de référencement de .h avec g++
Bonsoir,
J'ai un main.cpp que voici :
Code:
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;
} |
rien de très compliqué, normal je l'ai simplifié à l'extrème pour tester mon problème.
et un le fichier Interface_File.h :
Code:
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;
}; |
Bon je ne vous met pas le Parser.h car il inclus également d'autre .h et inutile de surcharger le sujet.
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 :
Code:
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 |
et "targetver.h" :
Code:
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 |
Je ne vois rien d'indispensable que je n'ai pas reprécisé dans mon manager.cpp !!!
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.