Librairie LibTorrent & construction projet Visual C++

Librairie LibTorrent & construction projet Visual C++ - C++ - Programmation

Marsh Posté le 14-05-2008 à 11:00:14    

Bonjour,
 
Je cherche à construire un projet Visual C++ 2005 à partir des sources de LibTorrent.
Je suis completement perdu dans les dépendances de ce projet (Linux OpenSource)
J'ai donc 2 questions :
L'un d'entre vous aurait il deja construit un projet à partir du repertoire des sources ? Et pourrait il me le fournir ?
Quelqu'un sait il si on peut récupérer les dépendances à partir des fichier makefile.in makefile.am et tous ces fichiers descriptifs du projet ?
 
(de plus, il semble qu'il y ai une répétition de sources entre 2 3 repertoires de ce projet, comment vous en etes vous sorti ?)
 
D'avance merci, ca m'arrangerai de gagner du temps la dessus.


Message édité par NounouRs le 14-05-2008 à 11:00:45
Reply

Marsh Posté le 14-05-2008 à 11:00:14   

Reply

Marsh Posté le 14-05-2008 à 11:15:11    

Petit ajout d'information en attendant des réponses :  
Il semblent que plusieurs projets se battent sur le terrain de LibTorrent.
En effet, les sources de LibTorrent (de base) se retrouvent dans le projet Kademlia, mais elles sont complètement remaniées. Les répertoires imbriqués sont descricturés, les fichiers sont renommés (pour info, c'est .cpp et .h la norme pour le c++, cf normalisation internationale de 2004)
 
Je vais partir sur la version de Kademlia, moins de répertoires, c'est plus simple à gérer.

Reply

Marsh Posté le 14-05-2008 à 15:09:59    

Au second essai, voici le probleme (et cela semble connu)  
Un conflit à la compilation de libtorrent  entre   boost et asio, à cause d'un WinSock.h already included... je ne sais pas comment le resoudre

Reply

Marsh Posté le 15-05-2008 à 15:08:43    

Passons tou sles points précédents, si certains veulent savoir comment je le ai résolu ou contournés, on y reviendra .
 
Maintenant, je pose une question générique, concernant l'étape de LINK sous Visual (c++ 2005)  les messages etant des fois pas très clairs, ils n'en sont neanmoins pas résolvables.
 
Il s'agit de ce schema de message :
 

Code :
  1. 1>session_impl.obj : error LNK2019: unresolved external symbol "public: void __thiscall libtorrent::dht::dht_tracker::add_node(class asio::ip::basic_endpoint<class asio::ip::udp> )" (?add_node@dht_tracker@dht@libtorrent@@QAEXV?$basic_endpoint@Vudp@ip@asio@@@ip@asio@@@Z) referenced in function "public: void __thiscall libtorrent::aux::session_impl::add_dht_node(class asio::ip::basic_endpoint<class asio::ip::udp> )" (?add_dht_node@session_impl@aux@libtorrent@@QAEXV?$basic_endpoint@Vudp@ip@asio@@@ip@asio@@@Z)


 
D'apres mes recherches cela se produit lorsque un programme écrit en C est interpreté comme du C++ par le linkeur de librairies.  Et donc ca crash.
 
Je sais la cause, mais je ne connais pas la solution... comment on dit d'interpreter en C ????  Et surtout, comment on cible les bons fichiers ?  (mon projet est un mélange de fichiers cpp et de fichiers c)


Message édité par NounouRs le 15-05-2008 à 15:08:59
Reply

Marsh Posté le 15-05-2008 à 16:39:23    

Tous les fichiers compilent bien individuellement, meme les fichiers liés au projet Visual, par contre, ca commence à planter à l'etape du link...  
 
Ca m'emmerde ce linker et ses messages super explicites...

Reply

Marsh Posté le 15-05-2008 à 22:13:37    

faut entourer tes definitions de fonction par  
extern "C" {}

Reply

Marsh Posté le 16-05-2008 à 10:11:10    

Le soucis c'est que le projet que je compile est sensé être déjà abouti, si ce genre de problème existait vraiment, ils l'auraient déjà corrigé je pense. Mais comme les compilations de cette librairie doivent être rares sous windows, ce n'est pas si certain.
 
Passons, j'ai une autre question :   A partir de l'ensemble des fichiers du projet (linux) LibTorrent, j'ai cherché à construire un projet Visual c++   et à construire une dll.
 
J'ai fini par obtenir une dll (et une lib) mais je pense que j'ai raté une etape : la publication du contenu.  J'ai laissé de coté le fichier stdafx.cpp qui semble etre une piece maitresse des projets de dll windows. Et j'aurai pas du.
Resultat, je crois qu'aucune class n'est présentée dans la dll.
 
Est ce que quelqu'un pourrai me faire un résumé de la bonne maniere de creer une dll sous VC8 ? Et surtout, est on vraiment obligé de présenter explicitement ce qu'on veut rendre accessible dans les programmes stdafx ?  Si on fabrique une dll à partir d'un projet de 1000 class, il faut se taper 1000 lignes ????  c'est aberrant !
 
Info : j'ai deja developpé sous visual il y a 3 ans, dll y compris, et j'ai pas mal oublié - j'ai relu le document : http://www.functionx.com/visualc/l [...] n32dll.htm


Message édité par NounouRs le 16-05-2008 à 10:12:11
Reply

Marsh Posté le 17-07-2008 à 01:04:13    

hi NounouRs,
 
Pratiquement j'ai aussi les mèmes problèmes que vous avez déjà eu lors de la construction d'un projet visual c++ 2005 à partir de libtorrent.
 
svp, est ce que vous avez déjà réussi à les résoudre?
 
si oui, est ce que vous pouvez m'envoyer le projet ou m'expliquer les étapes à suivre.
 
merci,

Reply

Marsh Posté le 30-09-2008 à 09:31:55    

Je suis parti sur la base d'un projet nommé arctic (pear to pear) qui est basé sur LibTorrent.
Et pour info, les fichier stdafx, on peut les supprimer, il suffit de configurer qu'on n'utilise pas de header pré compilé et d'avoir un main  (comme ca à la C, ou bien dans sa classe principale)

Reply

Sujets relatifs:

Leave a Replay

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