2 votes

Utilisation des bibliothèques racine linux dans Windows

Je dois travailler avec des bibliothèques c++ basées sur Root cern. Ces bibliothèques ont été écrites avec l'environnement Linux et k dev et maintenant je dois utiliser ces bibliothèques sous Windows avec Visual Studio. Tout d'abord, j'essaie juste de compiler quelques en-têtes .h et quelques codes sources .cpp dans Visual c++ pour créer une dll. Ces fichiers ont été compilés sans aucun problème sous Linux.

J'ai donc un problème pour générer une DLL fonctionnelle que je peux utiliser plus tard dans csharp.

Les erreurs que je reçois sont des erreurs LNK même si je pense avoir ajouté les .lib nécessaires dans le linker qui sont des bibliothèques liées à Root.

Les erreurs sont les suivantes :

Error 1 error LNK2001: unresolved external symbol "public: virtual void __thiscall Directory::ShowMembers(class TMemberInspector &)" (?ShowMembers@Directory@@UAEXAAVTMemberInspector@@@Z) 

Error 2 error LNK2001: unresolved external symbol "public: virtual void __thiscall Directory::Streamer(class TBuffer &)" (?Streamer@Directory@@UAEXAAVTBuffer@@@Z) 

Error 3 error LNK2019: unresolved external symbol "public: static class TClass * __cdecl Directory::Class(void)" (?Class@Directory@@SAPAVTClass@@XZ) referenced in function "public: virtual class TClass * __thiscall Directory::IsA(void)const " (?IsA@Directory@@UBEPAVTClass@@XZ) 

J'apprécierais vraiment si quelqu'un pouvait m'indiquer quelques pistes !

1voto

Malheureusement, ce n'est pas possible. Vous devez recompiler ces bibliothèques sous Windows si vous avez le code source. Sinon, demandez au fournisseur une version Windows.

0voto

Aditya Kumar Points 3884

0voto

lurscher Points 5057

Vous devrez parcourir les sources de ces bibliothèques (ce n'est pas un problème, puisque Root est open source) et trouver les définitions de ces méthodes. Cela peut paraître évident, mais il semble que ces fonctions soient censées être définies ailleurs

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X