Je travaille sur un module qui utilise une bibliothèque partagée, à laquelle est liée une bibliothèque statique. La bibliothèque partagée fonctionne correctement et génère un fichier .so. Quand j'essaie de l'utiliser dans le module, j'obtiens une variété d'erreurs, dont la plupart sont basées sur stl (les collections stl sont spécifiques), au stade de la compilation. Les erreurs ressemblent:Erreurs lancées à partir de stl lors de la compilation d'un module utilisant la bibliothèque "Meschach"
In file included from /usr/include/c++/4.3/list:68,
from /home/gayan/LHIMo/LHI/src/CalcEngine/include/JuncNodeInfo.h:11,
from /home/gayan/LHIMo/LHI/src/CalcEngine/include/RiverFlowParameter.h:11,
from Main.cpp:11:
/usr/include/c++/4.3/bits/stl_list.h:465:11: error: macro "catch" requires 3 arguments, but only 1 given
est donné dans la plupart des endroits qui utilisent la liste, vecteur ou carte. S'il vous plaît aidez-moi à résoudre ce problème.
Exemple de code: "CalcEngine.h" dans la bibliothèque:
#ifndef LHI_CALCENGINE_H_
#define LHI_CALCENGINE_H_
extern "C"{
#include <matrix2.h>
}
class CalcEngine{
public:
protected:
};
#endif /* LHI_CALCENGINE_H_ */
Main.cpp dans l'application:
#include <iostream>
#include <CalcEngine.h>
#include <list> // The compilation fails as soon as this is added
int main(int argc, char** argv){
return -1;
}
je sens que cela a quelque chose à voir avec le fichier matrix2.h mais ne pouvait pas le localiser. Le fichier peut être trouvé
plus de code! J'ai vu des erreurs STL vraiment étranges avec g ++ à cause d'erreurs de syntaxe stupides comme des points-virgules manquants après les déclarations de classe ... –
Bon point. J'ai commencé à écrire un échantillon et j'ai remarqué que les erreurs surgissaient en incluant un fichier appelé matrix2.h (de la bibliothèque Meschach). J'ai inclus le code. – Gayan