Installationshinweise
Inhalt:
Installation Visual Studio
Doxygen 1.4.6
CppUnit 1.11.6
Subversion-Tools
Borland Together Architect 1.1
Installation Visual Studio
Ich empfehle, nicht die Vollinstallation durchzuführen, denn mit einer maßgeschneiderten
Installation wird Festplattenplatz gespart, Visual Studio sollte ein wenig flotter sein,
und es laufen keine unnötigen Dienste auf dem Rechner.
In Schritt 2 der Installation wird deshalb "Benutzerdefiniert" gewählt:
Im nächsten Schritt die markierten Komponenten aus der Installation entfernen
(außer jemand will C#, VB.NET oder ASP.NET verwenden):
Anschließend wird die MSDN-Bibliothek installiert. Hier brauchen wir die benutzerdefinierte
Installation nicht durchzuführen da sowieso nur Dokus zu den eben installierten
Visual-Studio-Komponenten installiert werden.
Beim ersten Start sollte man das "Programm zur Verbesserung der Benutzerfreundlichkeit", dass
sich im Systray breit macht, abschalten:
Doxygen 1.4.6
Download des Pakets von http://www.doxygen.org. Das gibt es auch hier: doxygen-1.4.6-setup.exe.
Auf jeden Fall das Installations-Paket verwenden, nicht die gezippten Binaries, da diese
den GUI-Wizard nicht enthalten.
Für die Installation gibt es keine Besonderheiten, die Verwendung wird im MFCMinimal-Beispiel
beschrieben.
Die Projekt-Homepage ist hier: http://sourceforge.net/projects/cppunit.
CppUnit muss leider selbst compiliert werden.
Sources: cppunit-1.11.6.tar.gz
Doku: cppunit-docs-1.11.6.tar.gz
Die benötigten Binaries compiliert (auf einem WinXP64-System, läuft auch an der FH) cppunit-bin-1.11.6.zip (6 MB)
Build-Anleitung für die Interessierten (die Anleitung findet man auch im Sourcen-Archiv in der Datei "INSTALL-WIN32.txt"):
- Im Unterverzeichnis "src" die Visual-Studio-6-Workspace-Datei "CppUnitLibraries.dsw" mit Visual Studio öffnen.
Es gibt eine Reihe von Abfragen ob der Workspace konvertiert werden soll, die alle mit "Ja" beantworten.
- Im Menü "Erstellen" den Punkt "Batch erstellen..." wählen.
- Im erscheinenden Dialog "Batch erstellen" auf "Alle auswählen" klicken und dann auf "Erstellen".
- Beim ersten Durchlauf gibt es direkt im ersten Projekt "cppunit" diese Fehlermeldung:
Copying target to lib/
Das System kann den angegebenen Pfad nicht finden.
0 Datei(en) kopiert.
Project : error PRJ0019: Ein Tool hat einen Fehlercode aus folgender Quelle zurückgegeben: "Copying target to lib/"
Das scheint daran zu liegen dass das Verzeichnis "lib" zu dieser Zeit noch nicht erstellt ist.
Lösung: Zweiter Build-Durchlauf (hierbei im Dialog "Batch erstellen" den Button "Neu erstellen" wählen sonst wird nicht komplett
neu compiliert !)
- Jetzt gibt es bei mir immer noch Fehler:
MsDevCallerListCtrl.cpp
.\MsDevCallerListCtrl.cpp(67) : error C3505: Typbibliothek '{80CC9F66-E7D8-4DDD-85B6-D9E6CD0E93E2}' kann nicht geladen werden
.\MsDevCallerListCtrl.cpp(67) : fatal error C1104: Schwerwiegender Fehler beim Importieren der LibID: "80cc9f66-e7d8-4ddd-85b6-d9e6cd0e93e2"
Lösung in diesem Fall: Die Datei "MsDevCallerListCtrl.cpp" im Projekt "TestRunner" öffnen und den Import für die Typelib
"dte80a.olb" (der hier über die GUID geht) ersetzen durch den absoluten Pfad:
Aus:
#import "libid:80cc9f66-e7d8-4ddd-85b6-d9e6cd0e93e2" version("7.0") lcid("0") raw_interfaces_only named_guids
wird:
#import "libid:80cc9f66-e7d8-4ddd-85b6-d9e6cd0e93e2" version("8.0") lcid("0") raw_interfaces_only named_guids
Hierbei handelt es sich um den Import der Datei "dte80a.olb" im Verzeichnis "C:\Programme\Gemeinsame Dateien\Microsoft Shared\MSEnv\dte80a.olb".
Scheinbar ist es egal was wir hier eintragen, es darf nur nicht "7.0" bei der Version stehen...
- Das Projekt "DSPlugIn" wird immer noch in 2 Konfigurationen Buildfehler erzeugen. Wir benötigen es aber sowieso nicht
da es nur mit Visual Studio 6 läuft. Die Fehler werden also ignoriert.
- Jetzt liegen im Verzeichnis "lib" die benötigten Dateien.
Von einigen Dateien gibt es mehrere Namens-Varianten. Konvention (am Beispiel "TestRunner.dll"):
-Kein Zusatz (TestRunner.dll): Release-Modus, kein Unicode
-Zusatz "u" am Dateinamen (testrunneru.dll): Release-Modus, Unicode-Unterstützung
-Zusatz "d" am Dateinamen (testrunnerd.dll): Debug-Modus, kein Unicode
-Zusatz "ud" am Dateinamen (testrunnerud.dll): Debug-Modus, Unicode-Unterstützung
Wir werden mit den Debug-Varianten MIT Unicode-Unterstützung arbeiten, die Anleitung von Hr. Dreher bezieht sich
auf die Variante OHNE Unicode.
Falls mit der von mir vorcompilierten Binary gearbeitet wird dann gibt es beim Compilieren 15 Warnungen dieser Art:
cppunitd.lib(Asserter.obj) : warning LNK4099: PDB "vc80.pdb" wurde nicht mit "C:\Temp\cppunit-1.11.6\lib\cppunitd.lib" oder an "c:\Temp\VS2005\MFCBasics\debug\vc80.pdb" gefunden; Objekt wird verknüpft, als ob keine Debuginformationen vorhanden wären.
cppunitd.lib(Exception.obj) : warning LNK4099: PDB "vc80.pdb" wurde nicht mit "C:\Temp\cppunit-1.11.6\lib\cppunitd.lib" oder an "c:\Temp\VS2005\MFCBasics\debug\vc80.pdb" gefunden; Objekt wird verknüpft, als ob keine Debuginformationen vorhanden wären.
Dies liegt daran dass im jeweiligen Debug-Verzeichnis eines jeden VC++-Projekts die präcompilierte Header-Datei "vc80.pdb" liegt.
Eine lib-Datei die im Debug-Modus erstellt wurde referenziert diese pdb-Datei über ihren absoluten Pfad, das heißt sogar wenn ich
die kompletten Debug-Verzeichnisse in die Datei packen würde würde die Anwendung nur dann ohne Fehler compilieren wenn die
Pfade exakt mit denen auf dem Rechner übereinstimmen auf dem CppUnit compiliert wurde !
Ich emfehle deshalb jedem Studenten sich CppUnit für seinen Heim-PC nach obiger Anleitung zu compilieren und für seinen spezifischen Pfad
bereitzuhalten.
Troubleshooting
Beim Compilieren das Test-Projekts kann es sein dass Fehlermeldungen dieser Art auftauchen:
CAdrTestCase.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""public: __thiscall CAdresse::CAdresse(class ATL::CStringT > >,class ATL::CStringT > >,class ATL::CStringT > >,unsigned long,class ATL::CStringT > >)" (??0CAdresse@@QAE@V?$CStringT@DV?$StrTraitMFC_DLL@DV?$ChTraitsCRT@D@ATL@@@@@ATL@@00K0@Z)" in Funktion ""protected: void __thiscall CAdrTestCase::addTest(void)" (?addTest@CAdrTestCase@@IAEXXZ)".
Dies tritt bei allen Methoden auf die Strings als Parameter erhalten.
Lösung des ganzen: Die beiden Projekte haben einen unterschiedlichen Zeichensatz eingestellt, deshalb funktioniert
die Übergabe von Strings nicht. Den Zeichensatz kann man ändern in den Projekt-Eigenschaften:
Ich würde prinzipiell die Unicode-Unterstützung empfehlen.
Anhkh:
Homepage: http://ankhsvn.tigris.org.
Hier gibt es den aktuellen Development Snapshot 0.6.0.2439: AnkhSetup-0.6.0.2439-snapshot_32.msi
Tortoise:
Homepage: http://tortoisesvn.tigris.org/.
Hier gibt es das aktuelle Release 1.3.3: TortoiseSVN-1.3.3.6219-svn-1.3.1.msi
Falls jemand ein 64-Bit-Windows verwendet benötigt er diese Version: TortoiseSVN-1.3.3.6411-x64-svn-1.3.1.msi.
SmartSVN (Java-Subversion-Tool):
Homepage: http://www.syntevo.com/smartsvn/index.jsp
Hier gibt es das aktuelle Release 1.1.11: smartsvn-generic-1_1_11.tar.gz
Leider scheint dieses Tool nicht mit unserem Subversion zusammenarbeiten zu können (Fehlermeldung "PROPFIND request failed").
Borland Together Architect 1.1
Alle Einstellungen können beim Default belassen werden. Nur im Schritt "Installing Testing Extension to JDK Home"
habe ich den Haken "Install the Extension to JDK Home" entfernt:
Im Schritt "Choose a user role" nehmen wir den Default ("Developer"), etwas anderes läßt unsere Lizenz nicht zu.
Im nächsten Schritt "Select Diagram Format" würde ich "TXV" nehmen, klingt weniger veraltet.
Bei einer Installation unter Windows2003 oder WindowsXP 64 Bit kommt diese Fehlermeldung:
java.lang.StringIndexOutOfBoundsException: String index out of range: -85
at java.lang.String.substring(String.java:1444)
at java.lang.String.substring(String.java:1411)
at ZeroGlh.a(Unknown Source)
at com.zerog.ia.installer.util.magicfolders.JavaHomeMF.a(Unknown Source)
at com.zerog.ia.installer.util.magicfolders.JavaHomeMF.b(Unknown Source)
at com.zerog.ia.installer.util.magicfolders.MagicFolder.initializeAllMagicFolderPaths(Unknown Source)
at com.zerog.ia.installer.Main.d(Unknown Source)
at com.zerog.ia.installer.Main.c(Unknown Source)
at com.zerog.ia.installer.Main.main(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at com.zerog.lax.LAX.launch(Unknown Source)
at com.zerog.lax.LAX.main(Unknown Source)
Lösung des ganzen: Installer im XP-Kompatibilitätsmodus starten. Dazu in die Eigenschaften von "tg_architect_1_1_win_setup.exe" gehen und
auf der Karteikarte "Kompatibilität" den Kompatibilitätsmodus auf "Windows XP" schalten.
Version 1.4.1.0, Stand 09.05.2006
Historie:
1.0.0.0 (02.04.2006): Seite erstellt
1.1.0.0 (10.04.2006): Hinweise zur Installation von Together Architect 1.1
1.2.0.0 (12.04.2006): DoxyGen
1.3.0.0 (16.04.2006): CppUnit
1.3.1.0 (19.04.2006): CppUnit-Doku erweitert: Compilefehler bei TypeLib sauberer behoben, Hinweise zu Compilewarnung
bei Verwendung der Binaries.
1.3.2.0 (01.05.2006): CppUnit-Doku: Troubleshooting.
1.4.0.0 (08.05.2006): Subversion-Tools.
1.4.1.0 (09.05.2006): 64-Bit-Tortoise, Hinweis auf nicht funktionierendes SmartSVN.