FR/Documentation/Installation du SDK
Template:Documentation/Banner Que ce soit pour Linux ou Windows chacun des points suivants sont très importants si vous voulez réussir à construire des composants en C++ :
- Vous devez avoir OpenOffice.org 1.1.0 ou plus installé (le SDK ne marchera pas sans)
- Vous devez installer le SDK dans un répertoire autre que celui de l'application OOo .
Contents
Installation sous LINUX
Installation sous Windows
Template:Documentation/Windows
Installation avec le MS Visual C++ Toolkit 2003 (libre)
- J'ai d'abord installé DevCpp pour avoir un make capable d'exécuter un makefile.
- J'ai téléchargé VC++ 2003 ici
et je l'ai installé.
Je lance alors C:\openoffice\OpenOffice.org2.0_SDK\configureWindowsNT.bat qui me pose un certain nombre de questions :
set OO_SDK_HOME=C:\openoffice\OpenOffice.org2.0_SDK set OFFICE_HOME=C:\Program Files\OpenOffice.org 2.0 set OO_SDK_MAKE_HOME=C:\Dev-C++\Bin set OO_SDK_CPP_HOME=C:\Program Files\Microsoft Visual C++ Toolkit 2003\Bin set OO_SDK_JAVA_HOME=C:\Program Files\Java\jdk1.5.0_03
Si j'ai correctement répondu aux questions je suis maintenant en mesure de lancer setsdkenv_windows.bat chaque fois que j'ai besoin de positionner les variables d'environnement du SDK.
J'essaie ensuite de compiler un exemple du SDK. Cela ne peut se faire sans changement du code source correspondant : C:\openoffice\OpenOffice.org2.0_SDK\examples\DevelopersGuide\ProfUNO\CppBinding\office_connect.cxx
pour changer le port d'écoute d'OpenOffice.org (voir listing ci-dessosu)
Commençons par modifier le makefile en ajoutant :
CC_INCLUDES = -I"C:\Program Files\Microsoft Visual C++ Toolkit 2003\include" \ -I"C:\openoffice\OpenOffice.org2.0_SDK\include"
pour les répertoires d'inclusions ainsi que pour les répertoires des librairies :
$(OUT_BIN)/%$(EXE_EXT) : $(SAMPLE_OBJ_OUT)/%.$(OBJ_EXT) -$(MKDIR) $(subst /,$(PS),$(@D)) -$(MKDIR) $(subst /,$(PS),$(SAMPLE_GEN_OUT)) ifeq "$(OS)" "WIN" $(LINK) $(EXE_LINK_FLAGS) /OUT:$@ /MAP:$(SAMPLE_GEN_OUT)/$(subst $(EXE_EXT),.map,$(@F)) \ $< $(CPPUHELPERLIB) $(CPPULIB) $(SALHELPERLIB) $(SALLIB) $(STLPORTLIB)\ "C:\Program Files\Microsoft Visual C++ Toolkit 2003\lib\libcp.lib" \ "C:\Program Files\Microsoft Visual C++ Toolkit 2003\lib\libc.lib" \ "C:\Program Files\Microsoft Visual C++ Toolkit 2003\lib\oldnames.lib" \ "C:\Program Files\Microsoft Visual C++ Toolkit 2003\lib\kernel32.lib" else $(LINK) $(EXE_LINK_FLAGS) $(LINK_LIBS) -o $@ $< \ $(CPPUHELPERLIB) $(CPPULIB) $(SALHELPERLIB) $(SALLIB) $(STLPORTLIB) $(STDC++LIB) endif
Je suppose qu'il y a une méthode plus directe pour inclure ces librairies et les fichiers d'inclusions mais mais connaissances Windows ne sont pas assez avancée pour cela.
J'ai trouvé une solution aux problèmes évoqués trois semaines plus tard. Mon problème venait en fait d'un bug dans setsdkenv_windows.bat. Une petite correction dans ce fichier setsdkenv_windows.bat rendait possible d'éviter les modifications des makefiles ce qui aurait été très contraignant. Mettre :
REM Set environment for C++ compiler tools, if necessary. if defined OO_SDK_CPP_HOME call "C:\Program Files\Microsoft Visual C++ Toolkit 2003\VCVARS32.bat"
au lieu de :
REM Set environment for C++ compiler tools, if necessary. if defined OO_SDK_CPP_HOME call "%OO_SDK_CPP_HOME%\VCVARS32.bat"
Je pense que
%OO_SDK_CPP_HOME%\..\VCVARS32.bat
devrait fonctionner aussi (mais je ne l'ai pas testé). Vous pouvez aussi déplacer vcvars32.bat dans %OO_SDK_CPP_HOME% ("C:\Program Files\Microsoft Visual C++ Toolkit 2003\bin" pour moi).
Outils de développement pour le SDK
Il y a plusieurs exécutables fournis avec le SDK:
- idlc,
- cppumaker,
- javamaker,
- rdbmaker,
- pkgchk remplacé maintenant par unopkg (fourni avec OpenOffice.org et non pas avec le SDK)
- regcomp,
- regmerge,
- regview,
- xml2cmp,
- uno, et
- autodoc.
Vous pouvez trouver une petite documentation sur ces outils à : <OpenOffice.org1.1_SDK>/docs/tools.html
Un exemple CPP
Si vous voulez vérifier les exemples CPP , vous devez d'abord lancer :
./setsdkenv_unix
dans votre shell et ensuite:
<Ooo>/program/soffice "-accept=socket host=localhost,port=8100;urp;StarOffice.ServiceManager"
Maintenant Openoffice.org est configuré pour accepter les connexions UNO à travers le réseau. Nous somme maintenant prêt à compiler notre premier exemple et à vérifier s'il fonctionne correctement. Pour cela nous allons dans le répertoire:
cd <OpenOffice.org1.1_SDK>/examples/cpp/DocumentLoader make
cette dernière commande va compiler l'exemple et ensuite:
make DocumentLoader.run
va lancer cet exemple. Cet exemple va seulement ouvrir un fichier OOowriter's (test.sxw) fourni avec le SDK .
Il faut garder à l'esprit que le moyen le plus simple de construire les exemples du SDK est d'utiliser les makefile fournis. Lorsqu'on est débutant avec le SDK, on sous-estime des étapes importantes dans la construction et l'exécution des fichiers binaires, par exemple l'étape d'enregistrement discutée au chapitre 6. Je peux estimer avoir compris quelquechose quand je suis capable de le construire à partir de rien (juste des connaissances) mais dans le cas du SDK cela pourrait prendre beaucoup de temps. Ainsi je peux vous donner un conseil, si vous voulez commencer un projet essayez de partir d'un exemple qui fonctionne du SDK.