Liste der Anhänge anzeigen (Anzahl: 2)
Neues LinkThemAll
Hi,
es wird mal wieder Zeit für eine Verbesserung: Mir war es zu lästig, ständig Dateien vom Build auszuschliessen, um nicht zuviel zu linken. Ich will mir darüber keine Gedanken mehr machen, wer wen inkludiert. Das LinkThemAll hat ein bisschen mehr Intelligenz bekommen: Es bekommt über das Studio den Pfad auf die .c - Datei, die die Main-Funktion beinhaltet. Mit ihrer Hilfe scannt sie alle Header in ihrer Inklude-Reihenfolge durch und erkennt rekursiv alle inkludierungen. In dieser ersten Version werden keine *.c Dateien gescannt. Alle Inkludierungen in *.c Dateien werden nicht erkannt und dann auch nicht gelinkt. Also folgende Regel (Beispiel)
In main.c wird nur main.h inkludiert
in main.h kann dann GlobalConstants.h, Memory.h usw inkludiert werden; diese werden weiter gescannt
Im Anhang findet sich ein Beispiel für ein Log (kann man sich mal ansehen, bevor man sich das Update zieht) und ein Zipfile.
Im Zipfile wiederum ist ein Screenshot der neuen Kommandozeile für den Linker und Link.bat und LinkThemAll.exe. Die letzten beiden werden einfach überschrieben.
Wenn man das Projekt dann baut, bekommt man im Outputfolder eine LinkThemAll.log generiert, die anzeigt, welche header von wem inkludiert werden, welche Objectfiles zu den gescannten Headern gefunden wurden (daran kann man erkennen, ob vlt etwas nicht compiliert wurde) und es wird noch angezeigt, welche objectfiles an die Linkercommandline übergeben werden.
Ich denke, das ist eine ganz hübsche Arbeitserleichterung.
Probierts aus und schickt mir Verbesserungsvorschläge!!
Mfg, Martin
PS: Den Code zum Linktool gibts auf Anfrage per Mail (er ist noch ziemlich dirty, wird grad noch verbessert ;))
Liste der Anhänge anzeigen (Anzahl: 1)
LinkThemAll Code
So, jetzt kann ich auch den Code für das LinkTool rausgeben, hab ihn noch ein bisschen gesäubert :-D
Im zip befindet sich ein Studio2005 Projekt, ist also mit .NET2 auch übersetzbar.
Das Tool ist abwärtskompatibel zur alten Version. Wenn man den Pfad auf die main.c mitgibt, werden nur alle inkludierten Dateien geklinkt. Wenn der Parameter fehlt, werden alle objfiles gelinkt.
Have fun ;)
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo nochmal!
Ich muss euch schon wieder auf die Nerven gehen ;). Mittlerweile ist der zuerst aufgetretene Fehler beseitigt, aber ein anderer hat sich ergeben...
Ich glaube beim LINKEN des Projekts kommts zu einem unerwarteten Abbruch. Meiner Ansicht nach durch das Nichterstellen eines temporären Batch-Files.
@sast (falls da ;) ): Welche Häkchen müssen weg? Du hattest da ein paar Beiträge weiter oben was von geschrieben...
Wäre klasse, wenn sich mal jemand Fähigeres als ich den BuildLog anschaut : )
In meinem Release-Ordner sind nach dem Kompiliervorgang die *.obj, *.exe, *.exe.intermediate.manifest, mt.dep, vc90.idb.
Die *.exe-Datei verhält sich, wie sie soll...
Danke schonmal für die Hilfe!
Liste der Anhänge anzeigen (Anzahl: 1)
Template-Projekt
Also... es ist verdammt schwer, TeleDiagnosen zu stellen. Wir können jetzt noch ein bisschen weiter raten. Aber du kannst auch dieses Projekt hier nehmen, WinAVR und PonyProg in die vorgesehenen Ordner kopieren und loslegen.
Ich weiss wie frustrierend es ist, wenn man nicht voran kommt. Mit diesem Projekt muss es gehen, so läufts bei mir. (Da ist auch die neueste Version vom LinkThemAll drin, es wird nur gelinkt, was wirklich gebraucht wird).
Mfg, Martin