C AVR Studio 7.0 -> #include

Janiiix3

Aktives Mitglied
28. Sep. 2013
1.333
10
38
Hannover
Sprachen
  1. ANSI C
  2. C#
Guten morgen,

Habe da mal eine Frage zum Thema "Dateien einbinden".
Ich habe schon seit längerem eine DropBox, dort lege ich all meine Projekte (Dateien) ab. Das hat den Hintergrund, dass ich nicht ständig Dateien hin und her kopieren möchte (dort sind auch alle .c und .h aktuell).

Nun habe ich versucht in Atmel Studio 7.0 (Version spielt bestimmt keine Rolle) die Headerdatei folgendermaßen einzubinden ->

#include "C:\Users\Werkstatt\Dropbox\C - Programmieren\C- Librarys\SPI\XMEGA\spi.h"

Das hat auch wunderbar funktioniert. Möchte ich jetzt aber eine Funktion aus dieser Headerdatei benutzen ( die in der entsprechenden .c Datei implementiert ist), sagt mir der Compiler das es keine Referenz zu dieser Funktion gibt.
Vermutlich liegt es daran das nichts von der dazugehörigen .c bekannt ist bzw. wo die liegt? Wie füttere ich ihn mit diesem Wissen, dass er darauf zugreifen kann?
 
Siehst du die spi.c im Projektmanager? Wenn nicht, wäre die Fehlermeldung eigentlich klar. Wenn die Datei nicht im Projekt ist, dann füge sie hinzu. Inwieweit das mit Dropbox funktioniert, weiss ich allerdings nicht.
 
Mußt Du die externe Funktion nicht auch in der aufrufenden C-Datei "bekanntmachen"? mit

CodeBox C
extern Variablentyp Funktionsname (Parameter);

@Dirk?
 
Das will ich ja eben nicht. Ändere ich in diesem Projekt die SPI.c muss ich sie für ein anderes Projekt wieder dahin kopieren. Habe ich jetzt einmal den Überblick verloren, welche SPI.c Version die neuste ist, arbeite ich evtl. mit einer älteren.

Um das zu vermeiden wollte ich eigentlich immer von diesem einem Ort aus arbeiten. Verstehst du was ich meine?
 
Mußt Du die externe Funktion nicht auch in der aufrufenden C-Datei "bekanntmachen"? mit

CodeBox C
extern Variablentyp Funktionsname (Parameter);

@Dirk?

Wenn ich die beiden Dateien, in meine Solution mit rein kopiere, klappt alles wunderbar. Aber das wollte ich ja eben nicht. Da ich von einem "Zentralen" Ort aus arbeiten möchte.
 
Meine spi.c liegt auf meiner DropBox (lokal auf dem Rechner)... Diese hat dort ihren Stammplatz. Bisher habe ich es so gemacht das ich für jedes neue Projekt diese spi.c in das neue Projekt kopiert habe. Das heißt wenn ich was an dieser Datei ändere, ändere ich sie nicht an ihrem Stammplatz sondern in ihrem Projektordner. Vergesse ich jetzt nach Abschluss dieses neuen Projektes oder einfach mal so zwischendurch die bearbeitete spi.c wieder an ihrem Stammplatz einzufügen (um die ältere Version zu überschreiben) arbeite ich ja mit einer alten Version. Das wollte ich damit verhindern, dass ich halt immer von dem Stammplatz aus arbeite.
 
Um das zu vermeiden wollte ich eigentlich immer von diesem einem Ort aus arbeiten. Verstehst du was ich meine?
Die Datei ist also in Dropbox und soll von dort auch immer verwendet werden, denke ich mal. Hmmm, da kann ich jetzt auch nicht sagen wie das geht, ich kann es leider auch bei mir nicht testen.
Mußt Du die externe Funktion nicht auch in der aufrufenden C-Datei "bekanntmachen"?
Normalerweise benötigt man es nicht, die Prototypen der Funktionen sind sicherlich in spi.h definiert und somit bekannt.
Janiiix kann es aber trotzdem mal zusätzlich mit "extern void Funktion(void);" probieren. Aber normalerweise ist der Prototyp definiert, die Funktion kann aber nicht gefunden werden. Irgendwie muss spi.c und spi.h im Projektmanager (von Quelle Dropbox) eingebunden werden.
 
Das ist ja eigentlich auch mit einer der Vorteile dieser .c
Man kann sie immer und immer wieder benutzen. Nur wenn ich jetzt nen paar Projekte nebenbei laufen habe (kann ja manchmal vor kommen), woher weiß ich, wenn ich nicht aufpasse welche Version davon jetzt die neuste ist?
Daher wollte ich von einem Zentralen Ort (eben meine DropBox) arbeiten und die Dateien benutzen.
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)