Forum: Compiler & IDEs AS 6.2 -> Eigene MyTools.h / MyTools.c einbinden?


von AVRli (Gast)


Lesenswert?

Hi,

ich habe einige Funktionen in eine MyTools.h und MyTools.c 
ausgegliedert.

Diese befinden sich in dem Verzeichnis: D:\AVR\C\MyTools
Das eine Hauptprogramm befindet sich im Verzeichnis: 
D:\AVR\C\Projekte\PrgStepp

Ein weiteres, welches ebenfalls auf die MyTools zugreifen soll, ist in: 
D:\AVR\C\Projekte\PrgTherm

Soweit alles in Ordnung. :-)

Im Atmel Studio 6.2 bin ich nun im Solution Explorer auf "Add existing 
file" und es wird auch hinzugefügt, allerdings wird die Datei NICHT 
verlinkt sonder aus D:\AVR\C\MyTools in den jeweiligen Projekt Pfad z.B. 
D:\AVR\C\Projekte\PrgStepp kopiert.

Ich wollte das ich die MyTools "global" für alle Programme pflegen kann, 
das geht nun durch die Kopien nicht.

Bin der Meinung das bei früheren Versionen genau das möglich war und 
bitte daher an dieser Stelle um Rat.

Vielen Dank im Voraus, Grüße AVRli...

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

AVRli schrieb:
> Im Atmel Studio 6.2 bin ich nun im Solution Explorer auf "Add existing
> file" und es wird auch hinzugefügt, allerdings wird die Datei NICHT
> verlinkt sonder aus D:\AVR\C\MyTools in den jeweiligen Projekt Pfad z.B.
> D:\AVR\C\Projekte\PrgStepp kopiert.

Das hast Du wie diagnostiziert?

Dadurch, daß der Solution Explorer die Datei dort anzeigt, oder hast Du 
mit dem Explorer nachgesehen?

Ersteres wäre ... unerwartet, das macht das Visual Studio nicht von sich 
aus.
(Zugegeben, ich kenne es nur als reines Visual Studio)

von Kaj (Gast)


Lesenswert?

Rufus Τ. Firefly schrieb:
> Dadurch, daß der Solution Explorer die Datei dort anzeigt, oder hast Du
> mit dem Explorer nachgesehen?
Die Dateien werden in den Projektordner kopiert, das kann ich 
bestaetigen. War in Version 5 aber glaube ich auch schon so.

von AVRli (Gast)


Lesenswert?

Rufus Τ. Firefly schrieb:
> Das hast Du wie diagnostiziert?

Ja es wurde irgendwie beim Doppelklick auf die Datei nicht die geänderte 
aufgemacht, sondern eben eine die völlig unberührt war.

Da hatte ich einfach nachgesehen und in der Tat, die Datei wird in den 
Projekt Ordner kopiert. :-(

von Holger L. (max5v)


Lesenswert?

Project -> Properties
und unter dem Reiter Toolchain -> Avr/Gnu C Compiler in Directories den 
Ordner angeben.
Anschließend ganz normal die .h Datei mit #include einbinden.

Sollte soweit funktionieren, habe es nur kurz getestet.

von Oliver S. (oliverso)


Lesenswert?

Holger L. schrieb:
> Sollte soweit funktionieren

Geht völlig am Thema vorbei.

Oliver

: Bearbeitet durch User
von Holger L. (max5v)


Lesenswert?

Oliver S. schrieb:
> Geht völlig am Thema vorbei.

Richtig...

Dann erklär doch bitte mal was der Beitragsersteller genau machen möchte 
und was in meinem Beitrag am Thema völlig vorbei ging ?

von Karl H. (kbuchegg)


Lesenswert?

Der Beitragsteller möchte wissen, wie er es hinkriegt, dass er sich auf 
seiner Platte ein Verzeichnis macht, auf dem er Codemodule ablegen kann 
und die er im Atmel Studio in ein Projekt reinziehen kann OHNE das im 
Atmel Studio diese Module von diesem Utility Verzeichnis aufs aktuelle 
Projektverzeichnis umkopiert.

Im Grunde will er sich eine zentrale Source-Code Library zur Einbindung 
in Projekte aufbauen. Dieselben Codemodule in mehreren Projekten, aber 
immer der gleiche Code, so dass Codekorrekturen, die im Zuge eines 
Projektes anfallen automatisch auch den anderen Projekten (nach 
neukompilierung selbstverständlich) zu gute kommen.

Nur dass ihm da das Studio einen Strich durch die Rechnung macht, indem 
es den Code eben nicht von diesem zentralen Verzeichnis holt und durch 
den COmpiler jagt, sondern den Source Code zum Projekt herkopiert.

Ich hab darauf auch keine Antwort. Im original Visual Studio ist das 
kein Problem. Man kann die Source Code Quellen aus unterschiedlichen 
Verzeichnissen zusammentragen und der Source Code bleibt auch an der 
originalen Stelle. Auch mit dem alten AVR-Studio war dieses Thema kein 
Problem.

von AVRli (Gast)


Lesenswert?

Holger L. schrieb:
> Sollte soweit funktionieren

Nee das ist nicht das Problem... ;-) Der Compiler/Linker findet schon 
alles das Problem ist das jede Datei die per "Add exists File" in den 
"Solution Explorer" hinzugefügt wird, vom eigentlichen Ort auf der 
Platte in den aktuellen Projekt Ordner kopiert wird.

Ich möchte keine 5 Dateien pflegen, sondern nur eine MyTools...

Oliver S. schrieb:
> Geht völlig am Thema vorbei.

Hat somit schon recht...

von AVRli (Gast)


Lesenswert?

Karl Heinz schrieb:
> Der Beitragsteller möchte wissen...

Überschneidung
Danke, genau so! :-)

von Holger L. (max5v)


Lesenswert?

Genau so hatte ich das verstanden.

Wenn er nun den Pfad D:\AVR\C\MyTools wie oben beschrieben in 
verschiedenen Projekten angibt kann er sie Verwenden ohne das sie in das 
aktuelle Projektverzeichnis kopiert werden und es bei Aktualisierungen 
zu Problemen kommt.

Wenn er Änderungen vornehmen möchte muß er es in dem D:\AVR\C\MyTools 
Verzeichnis erledigen.

von Fred (Gast)


Lesenswert?

Dann sieht er die Dateien aber nicht in der IDE --> unbrauchbar.

von Holger L. (max5v)


Lesenswert?

Den Text "MyTools.h" in #include <MyTools.h> mit einem Doppelklick 
markieren, Rechtsklick -> Goto Implementation.

Eine delay.h sieht man auch nicht im Solution Explorer.

von AVRli (Gast)


Lesenswert?

So Leute, haltet Euch fest...

Es klappt nun aber das kann man auf dem ersten Blick nicht sehen!!!

- im Solution Explorer auf das Projekt rechts klicken
- Add --> Existing Item
- Datei anwählen

und nun!!!

Neben dem "Add Button" auf den Pfeil drücken --> "Add as Link"

Dadahhh

Dann wird eine Verlinkung im Solution Explorer eingefügt!

;-) Logisch ist anders...

Danke dennoch an Alle!

von Oliver S. (oliverso)


Lesenswert?

Holger L. schrieb:
> Wenn er nun den Pfad D:\AVR\C\MyTools wie oben beschrieben in
> verschiedenen Projekten angibt kann er sie Verwenden

Das funktioniert nur für headerfiles, nicht für sourcefiles.

Oliver

von Christopher Johnson (Gast)


Lesenswert?

Übrigens wenn man doch die Dateien (und auch ganze Ordner) kopieren und 
nicht nur verlinken möchte (aus welchen Gründen auch immer), dem könnte 
dieses Video behilflich sein:

http://youtu.be/n_IvIQeRaCo

Drag and drop aus dem Windows-Explorer in den Project-Explorer von AS, 
wie es laut Stackexchange-Thread für VS gehen soll, geht nämlich für AS 
nicht.

Ich kenne Leute, die tatsächlich bisher komplette Verzeichnisstrukturen 
in AS neu angelegt haben um dann nur die Dateien per "Add->Existing 
Item" ins Projekt zu bekommen. Sisyphos lässt grüßen ;)

von Schmiedl (Gast)


Lesenswert?

Ich werd nie verstehen was Leute dazu bringt Videos zu Dinge zu machen, 
die man in 3 Sätzen erklärt...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.