FR/Documentation/Installation du SDK

From Apache OpenOffice Wiki
Jump to: navigation, search

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 .

Installation sous LINUX

Template:Documentation/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é.

Documentation caution.png La version 2003 semble maintenant indisponible. Il vous faudra vous rabattre sur la version 2005

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.

Documentation caution.png Il semblerait donc que le SDK sous Windows n'est pas prêt à l'emploi comme il l'est sous Linux !

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 .

Template:Documentation/Note

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.

Personal tools