mikrocontroller.net

Forum: PC-Programmierung Programmierung MSC/C++ V7.0 1995


Autor: Wolfgang (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich hatte einen Totalabsturz bei einem 15 Jahre alten Rechner, alles war 
weg. Hatte zufällig noch Programmfragmente und die Programmiersoftware. 
Compilieren funktioniert, beim Linken habe ich folgende Fehlermeldung, 
siehe unten.

Wer kann mir weiterhelfen.

Vielen Dank

MSC/C++ V7.0

Geben Sie Ihren Text in das Feld unten ein.
NMAKE /I /f c:\windows\temp\PWB01640.mak all
Microsoft Program Maintenance Utility version 1.20

echo > Nul @.\DOS_51.lrf
link @.\DOS_51.lrf

Microsoft(R) Segmented Executable Linker Version 5.31.009 Jul 13 1992

Object Modules [.obj]: .\DOS_51.obj
Run Files [DOS_51.exe]:.\DOS_51.exe
List File [nul.map]: NUL
Liberies [.lib]: +
Liberies [.lib]: +
Liberies [.lib]:
Definitions File [nul.def]: /NOI/BATCH/ONERROR:NOEXE  EXE  FAR 
/PACKC;C:\C/==\LIB\SLIBCE.lib(\mrt7\common\mantold.asm):error 
L1010:_Text:segment size exceeds 64k
C:\c700\LIB\SLIBCE.lib(\mrt7\common\mantold.asm): warning L4020:_Text: 
code-segment size exceeds 64k-36
Link: fatal error L1071: segment _Text exceeds 64k-16

Autor: High Performer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du verwendest bei Compilieren und evtl. Linken ein Speichermodell, das 
nur sogenannte "Near"-Zeiger verwendet. Damit wird dann das 
Programmsegment ("_text") auf 64k begrenzt. Zumindest bei 
Borland-Compilern gab es WIMRE "große" Speichermodelle, z.B. LARGE und 
HUGE. Leider kann ich Dir nicht sagen, wie man das bei MS-Compilern 
einstellt.

Ich sehe gerade, Du verwendest eine SLIBCE.lib. Das "S" wird evtl. für 
"short" stehen (also 64k-Segmente). Du müsstest nun vermutlich dafür 
sorgen, dass Compiler und Linker ein großes Speichermodell verwenden.

Hoffe das hilft ein wenig weiter.

Autor: ... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
High Performer schrieb:
> Das "S" wird evtl. für "short" stehen

Eheer "small" :)
AFAIK war die entdsprechende Option bei dem Compiler /Ax, wobei x für 
das Speichermodell stand.

T   Tiny
S   Small (default)
C   Compact model
M   Medium model
L   Large model
H   Huge model

Also /AT, /AS, /AC, /AM, /AL, und /AH

Autor: High Performer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Eheer "small" :)

Ja, hast ja Recht, hatte es einfach nur hingeklatscht, um dem TS einen 
Hinweis zu geben, wo das Problem liegen könnte.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.