Bonjour,
j'ai créé un fichier def_constantes.h pour regrouper tout un ensemble de constantes dans un namespace.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
#ifndef DEF_CONSTANTES_H
#define DEF_CONSTANTES_H
 
#include <QString>
namespace Centrale
{
    QString ip_centrale("192.168.0.100");
    QString tag_t1 = "<Temperature1>";
}
#endif
J'inclus ce fichier dans mainwindow.cpp et un fichier de tests stuff.cpp:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
#include "stuff.h"
#include "def_constantes.h"
 
void Stuff::extraire()
{
    int position_start;
 
    position_start = buff.find(Centrale::tag_t1.toStdString());   //buff est un attribut de la classe Centrale
}
Et j'ai systématiquement le message:
:-1: erreur : stuff.o:(.bss+0x58): multiple definition of `Teracom::tag_t1'; mainwindow.o:(.bss+0x58): first defined here
Est-ce que j'écris mal mon fichier def_constantes.h ou alors les conditions de garde ne jouent pas leur rôle?
Je ne comprend pas ce qui se passe, si quelqu'un a une idée?

Merci.