probleme include avec g++ 2.95 et pas avec g++ 4.3.3

probleme include avec g++ 2.95 et pas avec g++ 4.3.3 - C++ - Programmation

Marsh Posté le 03-08-2009 à 11:27:05    

Bonjour à tous,
 
Je travaille sur une librairie en c++ multi environnements (windows, macos, linux).  
 
pour ce qui est de linux, elle doit fonctionner sous:
- Linux 2.6.x / g++ 4.3.2 / libc 2.8.9
- Linux 2.4.x / g++ 3.2.3 / libc 2.3.2
- Linux Debian Woody / g++ 2.95 / libc 2.2  
 
La libairie compile et fonctionne parfaitement sur les 2 premiers linux (et également windows et mac).
 
Sur le troisième linux -le plus ancien-, j'ai l'erreur :
 
In file included from /usr/lib/gcc-lib/i386-linux/2.95.4/../../../../include/g++-3/stl_alloc.h:42,
                 from /usr/lib/gcc-lib/i386-linux/2.95.4/../../../../include/g++-3/alloc.h:21,
                 from /usr/lib/gcc-lib/i386-linux/2.95.4/../../../../include/g++-3/std/bastring.h:39,
                 from /usr/lib/gcc-lib/i386-linux/2.95.4/../../../../include/g++-3/string:6,
                 from ../../../api/LineNumberReader.h:24,
                 from ../../common/client/AppClient.cpp:38:
/usr/lib/gcc-lib/i386-linux/2.95.4/include/new:9: directory `../../common/exception' specified in #include
 
Ce qui semble poser problème, c'est la définition dans le makefile d'un répertoire d'include du projet s'appelant "exception" (-I)
Dans la STL, l'interface new fait un #include <exception> que le compilateur cherche d'abord dans le répertoire du projet.
 
La solution de renommer le répertoire 'exception' du projet en 'exceptions' corrige le problème. Mais ca m'ennuie de faire cette modification  
Pour confirmer le problème, dans le source new de la stl, j'ai modifié 'include <exception>' par 'include "exception"'. et ca permet de compiler. puisqu'il va d'abord chercher 'exception' dans le répertoire courant.
 
Les questions:
-Existe-t-il une spécificité de g++ 2.95 par rapport aux versions plus récentes expliquant ce résultat?
-Et surtout, existe il une astuce (option de compil ou autre)?
 
En vous remerciant. A bientot.

Reply

Marsh Posté le 03-08-2009 à 11:27:05   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed