2010-06-19 9 views
1

Je suis en train d'écrire un module Apache pour mon stage. J'utilise C pour cela (je ne connais pas beaucoup Perl ou Python).Problèmes d'utilisation de bibliothèques tierces lors du développement de modules Apache

Je dois utiliser un analyseur HTML pour résoudre le problème pour lequel j'écris ce module. Je considère libxml2 dans ce but.

Je suis confus comment dois-je lier la bibliothèque dans mon module? Dois-je lier la bibliothèque lors de la compilation du module OU Dois-je utiliser la directive LoadFile dans le fichier de configuration pour charger la bibliothèque. Ma principale préoccupation est que pendant que je développe ceci sur Ubuntu, mais je ne sais pas quel sera le système d'exploitation fonctionnant sur le serveur de déploiement. Donc je veux son déploiement, les complications gratuites et réussies.

EDIT: @Grim: merci pour la réponse :)

I compilé le module avec les commandes suivantes:

apxs -I/usr/include/libxml2/-c mod_xmltest.c

Je crois que cela ne lie pas les bibliothèques dans le module, je recevais l'erreur "Unresolved Symbols" lors du démarrage du serveur, donc j'ai utilisé la directive LoadFile pour charger la librairie libxml2. Cela semble fonctionner.

Pensez-vous qu'il peut y avoir des problèmes de cette façon? Je pense que cela rend mon module plus portable, car sur le serveur de déploiement, l'administrateur peut spécifier explicitement l'emplacement de la bibliothèque libxml2.

Répondre

1

Vous devez lier la bibliothèque lors de la compilation de votre module.

Il y a bien sûr les problèmes habituels de portabilité (au moins, il s'agit d'un système d'exploitation non posix). Dans ce cas, certains d'entre eux sont résolus par apxc. Il est impossible de dire quelles complications pourraient survenir, mais rien de ce que vous décrivez ne devrait en causer.