Forums : XPCom

Aller à la discussion :  Plus récente Plus ancienne

# test pour vérifier si mon composant est bien enregistré

Envoyé par : Utilisateur anonyme

Date : 19/05/2005 10:44

Bonjour,

j'essaie de faire un composant XPCOM avec son implémentation en C++

j'arrive à générer à la compilation la librairie libRecord.so mais quand je veux tester ma fonction par la ligne de commande ./run-mozilla.sh ./xpcshell

j'ai cette erreur :

...
*** Registering nsMsgSMIMEModule components (all right -- a generic module!)
*** Registering SearchServiceModule components (all right -- a generic module!)
nsNativeComponentLoader: SelfRegisterDll(libRecord.so) Load FAILED with error: /cvsroot/mozilla/dist/bin/components/libRecord.so: undefined symbol: FSOUND_Init
nsNativeComponentLoader: autoregistering succeeded
...

Si quelqu'un pourrait me dire pourquoi cette erreur? A savoir que FSOUND_Init() est une fonction de la librairie fmod et que j'ai bien rajouté les inclusions nécessaires pour utiliser cette fonction.

Merci d'avance pour vos réponses.

Emma20.

# Re: test pour vérifier si mon composant est bien enregistré

Envoyé par : laurentj

Date : 20/05/2005 10:43

à mon avis tu as oublié de lier la bibliothèque de fmod avec ta dll. Mettre des includes ne suffisent pas. Il y a des choses à mettre en plus dans le Makefile de ton composant.

tu trouveras peut être des pistes sur http://xulfr.org/wiki/XpCom/Makefile même si ce n'est pas complet (d'ailleurs, si il y a des volontaires pour compléter cette page...)

# Re: test pour vérifier si mon composant est bien enregistré

Envoyé par : emma

Date : 20/05/2005 13:55

ok je vais voir si ca marche et je vous tiens au courrant.

# Re: test pour vérifier si mon composant est bien enregistré

Envoyé par : emma

Date : 20/05/2005 14:06

Re, Dans le makefile j'ai donc rajouter la librairie fmod : libfmod-3.74.so

...
libRecord.so: nsRecord.o nsRecordModule.o
	g++ -Wall -shared -o libRecord.so $^ $(TOP_SRC_MOZ)/dist/lib/libxpcomglue.a  \
	-L/usr/lib/libfmod-3.74.so -L$(TOP_SRC_MOZ)/dist/lib \
	-lplds4 -lplc4 -lnspr4 -lpthread -ldl -lm
...

mais j'ai toujours les memes erreurs

Faut t'il inclure la librairie au moment ou je compile mes fichiers cpp? Je vais voir... Si vous pouvez me tenir au courrant...

Merci d'avance emma.

# Re: test pour vérifier si mon composant est bien enregistré

Envoyé par : emma

Date : 20/05/2005 15:30

En fait dans le makefile j'ai rajouter la librairie de cette façon

...
libRecord.so: nsRecord.o nsRecordModule.o
	g++ -Wall -shared -o libRecord.so $^ /usr/lib/libfmod-3.74.so $(TOP_SRC_MOZ)/dist/lib/libxpcomglue.a  \
	-L$(TOP_SRC_MOZ)/dist/lib \
	-lplds4 -lplc4 -lnspr4 -lpthread -ldl -lm
...

j'ai toujours des erreurs mais maintenant ce n'est plus les mêmes. Néanmoins les erreurs sont générés comme même a l'appel de la commande xpcshell

...
nsNativeComponentLoader: SelfRegisterDll(libRecord.so) Load FAILED with error: /cvsroot/mozilla/dist/bin/components/libRecord.so: undefined symbol:
nsRecord_GetInterfacesHelper(unsigned int*, nsID***)
...

Voili Voilou. Donc je cherche comment y remédier.

# Re: test pour vérifier si mon composant est bien enregistré

Envoyé par : emma

Date : 25/05/2005 12:01

bonjour

J'ai toujours cette erreur alors dans nsRecordModule.cpp j'ai remplacé NS_CI_INTERFACE_GETTER_NAME(nsRecord) par NULL dans la procédure nsModuleComponentInfo components

Et forcément je n'ai plus l'erreur alors une petite question a quoi sert exactement la fonction NS_CI_INTERFACE_GETTER_NAME()?

Merci d'avance pour vos réponses. Emma.

Il n'est plus possible de poster des messages dans ce forum.


Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.

Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™ sont des marques de la fondation Mozilla.