3 votes

c++ liant un en-tête et une source d'un tiers

J'essaie d'intégrer TinyXML version 2 dans un projet, mais parce que TinyXML est si petit (ha !) il n'a pas été empaqueté dans une bibliothèque statique ou dynamique. Juste l'en-tête et la source sont fournis. Je reçois des erreurs de liaison parce que le compilateur ne peut pas trouver le fichier source à lier avec l'en-tête (ils sont au même endroit).

Existe-t-il un moyen de lier une source tierce à un projet sans avoir à la copier dans l'espace projet local ?

OU

Dois-je créer manuellement un fichier de bibliothèque (contenant un seul fichier source) et l'utiliser pour contourner le problème (même si le fait que la source ne change pas est une bonne raison de l'empaqueter, cela semble excessif pour un seul fichier) ?

[Voir les tags]

1voto

Drew Dormann Points 25025

Puisque vous ne voulez pas qu'il soit dans votre espace de projet local, vous semblez le traiter comme une bibliothèque, du moins conceptuellement.

Créez le fichier de la bibliothèque une fois et ne vous en occupez plus.

Le nombre de fichiers sources dans une bibliothèque ne devrait pas vous préoccuper.

0voto

clover Points 1275

Inclure tinyxml2.cpp au lieu de tinyxml2.h . Ou vous pouvez construire .lib inclure .h et indiquer au linker d'utiliser votre .lib

0voto

Ulrich Eckhardt Points 5381

Alternativement, construisez une bibliothèque statique ad-hoc en #incluant simplement les fichiers .cpp dans une seule unité de traduction. Cela peut être mal vu par certains, mais c'est une solution facile qui a aussi ses avantages.

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