cppunit编译,不知道为啥,好多人都报错

CppUnit 1.11.6 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"):

Die Projekt-Homepage ist hier:

  • 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.

根据修改能够顺利通过编译

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值