000
27.04.2011, 06:15 Uhr
Hans
Library Walker (Operator)
|
Hi,
ich versuche gerade, mir eine Bibliothek zusammen zu bauen (die Quelltexte stammen aus einem Buch) und verzweifele mehr oder weniger an den Linkeroptionen. Vorgeschichte: Beim Open Watcom scheitert das Projekt zum einen daran, das er aus einem mir nicht ersichtlichen Grund den Mathe-header nicht einbindet obwohl #include <math> als erstes in den Quelltexten steht und zum anderen daran, das der Compiler mit dem C++ Code nicht immer was anfangen kann, weil er den Standard nicht vollständig umsetzt.
Aus dem Grund hab ich mal wieder den Borland C++ Compiler (v5.5) installiert, für grössere Pakete recht der Speicherplatz nicht aus, (bzw. ich müsste erst ein paar andere Anwendungen vorübergehend runter schmeissen, was ich aber nicht will). Der Borlandcompiler hat die Quelltexte alle ohne zu mosern übersetzt, blos der Linker baut daraus keine Bibliothek, was er aber soll. Die make-datei sieht im Moment so aus:
Code: |
# Borland Makefile für die Bibliotheksmodule der Astronomieprogramme aus dem # Buch: Astronomie mit dem Personal Computer von Oliver Montenbruck und # Thomas Pfleger, 3. Auflage, Springer 1999, ISBN: 3-540-66218-9 # # 2. Version #
APC_lib.lib: .obj ilink32 /C /Gz /Gk /Gl /w /x c0d32.obj APC_*.obj ,APC_lib,,import32.lib
APC_*.obj: APC_*.cpp APC_*.h bcc32 -c -tWC -w- -O1 APC_*.cpp
Clean: if exist *.il* del *.il* if exist *.map del *.map if exist *.tds del *.tds if exist *.obj del *.obj if exist *.res del *.res
|
Irgendwo ist da noch ein Wurm drin, weil make bei dieser Datei auch den Compiler nicht aufruft; das hab ich von Hand gemacht, allerdings mit der Kommandozeile aus dieser Datei.
Ich hab u.a. aus einer weiteren Hilfedatei die Information, das es 3 Varianten des Startcodemoduls gibt: eines für Kommandozeilenprogramme, eines für GUI-Programme und eines für DLLs. Welches Modul setzt man da denn nun in die Kommandozeile ein, wenn man eine LIB, also eine statische Bibliothek erzeugen will? - Gar keines ist laut Linkeranleitung nicht möglich. Dann ist die Frage, ob ich mir die import32.lib hier nicht eigentlich schenken kann, weil ich ja kein ausführbares Programm binden will, sondern nur einen Baustein dafür. Die gleiche Frage gilt für die Mathebibliothek, die am Ende der Kommandozeile auch noch genannt werden müsste. Dabei stellt sich zusätzlich die Frage: wie heisst die?
Hans -- Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung. |