Problem mit indirekter pfadangabe beim AVR Studio

OP #1758516
Lesenswert?

Guten Tag,
ich habe angefangen den Queltext meiner Programme in Module 
zusammenzufassen und diese dann per .include einzubinden. Das soll das 
ganze übersichtlicher halten. Da ich alles auf einem USB-Stick habe weil 
ich an verschiedenen Rechnern arbeite, sollten es indirekte Pfadangaben 
sein.
Die includes sind folgendermaßen eingebunden:

.include "stack_init.asm"

stack_init.asm liegt in dem fall im selben Projektordner. Ich bekomme 
jedoch die fehlermeldung:
F:\AVR Projekte\Macros\Macros.asm(8): error: Cannot find include file: 
/stack_init.asm

Habe ich es falsch formuliert, oder sind relative pfadangaben beim 
Assembler nicht möglich?

mfg

Multikulti
#1758556
Lesenswert?

haben include Files nicht die Endung .inc? Bin mir jetzt nicht 100% 
sicher aber benenne mal dein .asm Datei um die eingebunden werden soll.

Ansonsten schau mal unter Assembler Options unter additional include 
path, also ein zusätzlicher Pfad der immer durchsucht bzw. eingebunden 
wird.
Gast #1758591
Lesenswert?

Hi

Irgendwie verstehe ich dein Problem nicht. Wenn sích Projekt und 
Programmfiles im gleichen Ordner befinden brauchst du keine relativen 
Pfade.

>haben include Files nicht die Endung .inc?

Das ist Wurst, wie die heissen. Du must nur den Namen richtig schreiben.

MfG Spess
OP #1758667
Lesenswert?

spess53 schrieb:
> Irgendwie verstehe ich dein Problem nicht.
Das problem ist, wenn ich einen absoluten Pfad angebe, wie z.b:
.include "F:/AVR Projekte/Macros/stack_init.asm" und ich den USB Stick 
auf dem das Projekt gespeichert ist in einen anderen PC stecke, ändert 
sich meistens der Laufwerkbuchstabe. Ich müsste jedesmall alle includes 
umschreiben.

spess53 schrieb:
> Programmfiles im gleichen Ordner befinden brauchst du keine relativen
> Pfade

Hm, wie denn?
Ist meine Schreibweise nicht richtig?

Thomas O. schrieb:
> haben include Files nicht die Endung .inc?

Die endung ist egal. Es muss nur eine Textdatei sein die im Assembler 
format geschrieben ist.
Gast #1758688
Lesenswert?

Hi

>Ist meine Schreibweise nicht richtig?

Eigentlich nicht.

Also ich habe vorhin noch einmal vorsichtshalber ein Projekt mit mehrern 
Dateine auf einen Stick kopiert und den originalen Ordner verschoben. 
Das Projekt lässt sich problemlos öffnen und assemblieren. Alles ohne 
Benutzung von Pfadangaben.

Andere Frage: Welchen Assembler benutzt du? AVR-Assembler oder 
AVR-Assembler2 ?

MfG Spess
Gast #1758747
Lesenswert?

Hi

>>>Ist meine Schreibweise nicht richtig?
>>
>> Eigentlich nicht.

>Wie wirds denn richtig geschrieben?

Entschuldige. Ich meinte: 'Eigentlich ja '.

Wie gesagt, ich kann verschobene Projekte problemlos öffnen und 
assemblieren.

MfG Spess
#1758755
Lesenswert?

Steffen P. schrieb:
> spess53 schrieb:
>>>Ist meine Schreibweise nicht richtig?
>>
>> Eigentlich nicht.
>
> Wie wirds denn richtig geschrieben?

Sollte eigentlich so passen wie du das hast.
Sicher dass sich da nicht doch ein / irgendwo eingeschlichen hat?

Du kannst auch mal probieren:

.include "./stack_init.asm"

Und auch wenn das mitlerweile kein Thema sein sollte, aber leider immer 
noch ab und zu eines ist:

F:/AVR Projekte/Macros/stack_init.asm

"AVR Projekte"

Wer in Pfad oder Dateinamen Leerezeichen einbaut, hat es nicht besser 
verdient als das er Ärger bekommt.

Leerzeichen, Umlaute, seltene Sonderzeichen (also alles was nicht _&-~%& 
ist, vielleicht noch ein paar mehr)
das sind die Zutaten, die Banker in Pfad und Dateinamen benutzen, wenn 
sie ihre Powerpoint-Präsentationen so ablegen müssen, das sie oder ihre 
Sekretärin sie wiederfinden können.

Für Softwareentwickler, die das eine oder andere mal schon auch noch auf 
alte Commandline Tools angewiesen sind, gilt:
* Keine Leerzeichen
* Keine Umlaute
* Keine Sonderzeichen ausser _ - und ab und an vielleicht noch ein + 
oder ein % und $. Aber auf keinen Fall / \ ? . , : *
Die Gefahr ist einfach zu groß, dass irgendein Commandline Parser diese 
Zeichen als Option misversteht bzw einen Dateinamen an einem Leerzeichen 
in 2 Teile auseinanderreisst.

Weder im Pfadnamen, noch im Dateinamen.
Tus einfach nicht und du hast weniger Probleme, die dir den Tag 
blödsinnig versauen können.
OP #1758951
Lesenswert?

Ohje, ich habs raus.
Ich hab ein include in ein include verschachtelt. Die Struktur sieht 
folgendermaßen aus:

F:/AVR Projekte/ProjektTralala
darin waren die makros eingebunden
F:/AVR Projekte/Macros/Macros.asm
in Macros.asm war ein Modul eingebunden
F:/AVR Projekte/Macros/stack_init.asm

Der Witz bei der sache war jetzt, das ich den relativen Pfad im 
Macros.asm vom Standpunkt des "ProjektTralala" angeben musste, obwohl 
stack_init.asm eigentlich im selben ordner liegt wie Macros.asm

Das heißt: .include "/Macros/stack_init.asm" Also, obwohl die beiden 
Dateien im ordner Macors wahren musste ich um sie ineinander zu 
verschachteln den pfad vom Projekt aus angeben.

Naja, wieder ein Tag schlauer. Danke für eure Hilfe.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren