2017-09-08 2 views
0

J'ai souvent besoin de construire des bibliothèques de liens communes comme zlib, libpng, jpeglib, freetype, etc. pour de nombreuses architectures différentes. Je préfère le faire hors de l'arbre construit alors, comme ceci:Comment savoir si configurer et faire la prise en charge des constructions hors-arbre?

mkdir build_linux_x64 
cd build_linux_x64 
../configure 
make 

Cela fonctionne généralement bien, mais maintenant j'ai lu que cela ne fonctionnera que si la condition suivante est remplie: « Le projet doit être activé pour Cela conduit à la question suivante: comment puis-je savoir si un projet est activé pour les constructions hors arbre? Est-ce que configure ou make échouera simplement si le projet n'est pas activé pour les constructions hors-arbre ou comment devrais-je le dire?

Répondre

2

Si la construction hors-arbre fonctionne, alors vous savez que cela fonctionne :). Quand ils disent "activé", cela ne signifie pas qu'il y a une option de commutation ou de configuration que le projet doit activer. Ils signifient que l'auteur du paquet doit avoir écrit leurs fichiers Makefile.am (ou Makefile.in s'ils n'utilisent pas automake) pour fonctionner correctement lorsqu'ils sont exécutés hors de l'arborescence. Il n'y a aucun moyen de savoir si ces fichiers sont écrits correctement sauf en l'essayant.

Si vous l'essayez et que cela ne fonctionne pas, vous devriez déposer un bug avec le paquet. Notez que la méthode standard de création de packages de distribution source avec autotools force l'utilisation de constructions hors arborescence. Ainsi, si elles créent leur distribution source à l'aide des méthodes standard, elles construiront définitivement hors de l'arborescence. correctement.