Envoyé par : Geceo
Date : 15/06/2005 19:58
Bonjour,
Je suis en train d'essayer de recompiler le composant XPCOM de XUL Music
Note : pour récupérer ce répertoire, vous pouvez utiliser :
wget -r -L -x https://updates.simosoftware.com/repos/xulmusic/
J'ai cru lire quelque part que la compilation d'un composant XPCOM sous Windows ne fonctionnait qu'avec Visual C++ pour l'instant. J'ai donc téléchargé la version gratuite du compilateur de Microsoft.
Pour compiler le composant XPCOM de XUL Music, j'ai ensuite installé Cygwin et les sources de Mozilla, je vous passe les détails. Je suis actuellement en train d'essayer de compiler XulRunner avec :
./configure --enable-app=xulrunner
mais ça plante sur le test du compilateur, avec la fameuse erreur
C compiler cannot create executables
J'ai vérifié que "cl.exe" était bien dans mon PATH, et il y est. Que puis-je faire?
Je précise que si je fais un export CC=gcc; export CXX=g++
, ça plante plus loin, il me dit que MOZ_TOOLS n'est pas défini.
Donc :
Merci de votre aide,
Geceo, futur dieu de XUL, mais pour l'instant super débutant... ;)
Envoyé par : Geceo
Date : 16/06/2005 10:25
Bon,
Une bonne nuit de sommeil, et ça repart! :) Il fallait lancer d'abord le fichier "vcvars32.bat" qui se trouve dans le répertoire d'installation de "Visual C++ 2003 Toolkit" (ou passer par le raccourci dans le menu), puis, dans cette fenêtre DOS, lancer Cygwin (avec "cygwin.bat" qui est dans le répertoire d'installation de Cygwin).
Si on fait l'inverse (lancer "vcvars32.bat" à partir de Cygwin), ça ne fonctionne pas. Probablement parce que quand on lance "vcvars32.bat" dans Cygwin, il ouvre un interpréteur DOS à l'intérieur de Bash et que cet interpréteur se referme aussitôt sans que Cygwin n'ait récupéré les variables d'environnement qui vont bien.
Problème : il plante un peu plus loin en me disant que la version du "Linker" n'est pas la même que celle du compilateur.
Solution : cet andouille de configure allait chercher le /usr/bin/link de GNU. Il faut donc définir la variable d'environnement LD vers le linker de MS, mais ce chemin ne doit pas contenir d'espaces. J'ai donc réinstallé le Toolkit de chez MS dans C:\msvs. Ensuite avant de lancer le configure --enable-app=xulrunner
dans Cygwin, j'ai fait un export LD=/cygdrive/c/msvs/bin/link.exe
et c'est passé.
Problème : il plante encore juste après, sous prétexte qu'il ne trouve pas "midl".
Solution : installer le Microsoft Platform SDK pour obtenir le fameux "midl.exe" (il est dans la catégorie "Tools"). Je l'ai installé dans C:\mssdk et j'ai ajouté le répertoire c:\mssdk\bin dans le PATH de Windows. Maintenant "configure" se plaint que ce n'est pas la bonne version, j'ai installé la version 6.00.0366 alors qu'il s'attendait à la 6.00.0361. J'ai donc modifié le "configure" pour que le test passe.
Problème : il plante ensuite sur MOZ_TOOLS.
Solution : récupérer wintools.zip et la dézipper dans un répertoire (autre que celui de Cygwin, j'ai choisi D:\moz_tools). Ajouter ensuite la variable d'environnement MOZ_TOOLS pour qu'elle indique le chemin vers le sous-répertoire "windows". Ajouter %MOZ_TOOLS%/bin dans le PATH.
Problème : il plante ensuite à cause de l'absence de "pkg-config".
Solution : installer "pkg-config" dans Cygwin (dans la catégorie "Devel"). "configure" plante après au sujet de Gtk2 puis de Xft. Comme je suis sous Windows, j'imagine qu'il n'y a besoin d'aucun des deux. J'ai donc retiré de mon fichier "~/.mozconfig" les lignes :
ac_add_options --enable-default-toolkit=gtk2 ac_add_options --enable-xft
Cette fois c'est bon, le ./configure --enable-app=xulrunner
va jusqu'au bout.
Prochaine étape : le "make".
Geceo
Envoyé par : vpedretti
Date : 23/06/2005 01:50
La Compilation
La compilation se passe très bien...;) à part :
xpidl.exe
qui crash. Solution : mettre c:\vc71\bin au début de la variable d'environnement "path" (c:\vc71\bin = glib + xpidl dll)
../../dist\include\xpcom\nsIConsoleService.h(63) : error C2061: erreur de syntaxe : identificateur 'nsIConsoleListener'
Effectivement, le fichier nsIConsoleListener.h a un taille nulle! il semblerait que sa génération à partir de l'idl correspondant, soit défectueuse. Après avoir cherché sur le web, j'ai trouvé des utilisateurs avec le même problème, mais la solution n'est jamais vraiment explicité. Il semblerait que cela soit un problème de version de xpidl.exe.... impossible de remettre la main sur une version plus ancienne de xpidl.c Si quelqu'un a une idée, je suis preneur!
Vincent.
Envoyé par : Geceo
Date : 28/06/2005 10:14
Salut Vincent,
Je suis content de voir qu'il y a quelqu'un d'autre qui fait les mêmes trucs que moi en ce moment.
Je n'ai pas complété mon message pour le "make" car y'a vraiment trop de détails à prendre en compte, entre les différents SDKs à installer (avec les bonnes options) et le PATH a compléter dans le bon ordre, c'est vraiment une grosse galère...
À ce jour, mon "make" plante pendant l'édition des liens dans le répertoire "mozilla/directory/c-sdk/ldap/libraries/libldap". Il me dit qu'il ne trouve pas "odbc32.lib" ("fatal error LNK1181: cannot open input file 'odbc32.lib'"). D'après ce que j'ai vu à divers endroits (par exemple pour la compilation de Blender dans le "Step 8") ce fichier n'est disponible qu'avec la version payante du compilateur. Comme ça m'étonnerait que XulRunner ait vraiment besoin d'accéder à des bases de données, je cherche comment je peux éviter cette erreur... Si tu as une idée...
MAJ : j'ai modifié mon ".mozconfig" et depuis que j'ai mis ça :
export MOZILLA_OFFICIAL=1 mk_add_options MOZILLA_OFFICIAL=1 mk_add_options MOZ_CO_PROJECT=xulrunner ac_add_options --enable-application=xulrunner #ac_add_options --disable-debug #ac_add_options --disable-tests #ac_add_options --disable-optimize #ac_add_options --disable-freetype2 # enable minimal profile support ac_add_options --disable-profilesharing ac_add_options --disable-profilelocking ac_add_options --enable-single-profile # disable unused features ac_add_options --disable-accessibility ac_add_options --disable-composer ac_add_options --enable-plaintext-editor-only ac_add_options --disable-mailnews ac_add_options --disable-ldap ac_add_options --disable-postscript ac_add_options --disable-mathml ac_add_options --disable-jsd ac_add_options --disable-installer ac_add_options --disable-xprint ac_add_options --enable-default-toolkit=windows # disable debug, logging and tests ac_add_options --disable-debug ac_add_options --disable-dtd-debug ac_add_options --disable-logging ac_add_options --disable-tests # build crypto module ac_add_options --enable-crypto # code generation options ac_add_options --enable-optimize='-O2p -GLA' ac_add_options --enable-strip ac_add_options --enable-strip-libs LDFLAGS=-LTCG # enable static build ac_add_options --disable-shared ac_add_options --enable-static # extensions list ac_add_options --enable-extensions=cookie,xml-rpc,xmlextras,p3p,universalchardet,wallet,webservices,negotiateauth,transformiix
il ne m'embête plus avec son "odbc32.lib". Par contre il plante avec :
fatal error C1048: unknown option '6' in '-G6'
Je commence à me dire que Java n'est pas une si mauvaise solution... :-(
Geceo
Envoyé par : Geceo
Date : 28/06/2005 16:01
J'ai fait un "make clean", puis de nouveau mes :
./configure --enable-app=xulrunner make
Incroyable, j'obtiens après un certain temps une boîte d'erreur Windows qui me dit :
xpidl.exe - Erreur d'application
L'instruction à "0x78468216" emploie l'adresse mémoire "0x00000010". La mémoire ne peut pas être "written".
J'ai testé la mémoire avec MemTest86, il ne détecte pas d'erreur. Je ne sais vraiment pas quoi faire...
Grégoire
Envoyé par : Utilisateur anonyme
Date : 15/07/2005 13:27
J'ai eu le même problème avec Visual C++ 7 complet. Je n'ai pas réussi à le résoudre, cela dit.
Avec la version gratuite, je ne passe même pas l'étape du configure :(
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.