Ich spiele gerade ein Bisschen mit Eclipse herum, im Wesentlichen um einem Freund die Sache über zu helfen...ich selbst werde bei make & friends bleiben :-) Ich habe hier Eclipse Neon und das avr-plugin über von Soureforge installiert. Ich habe jetzt mal ein avr-c Projekt kreiert und möchte nun zu diesem Projekt existierende C-Quellen hinzufügen (hier Uart Code). Ich möchte also nicht ein Projekt aus einem existierenden Make-Projekt importieren, sondern nur woanders liegende C Quellen und Header hinzufügen (kopieren). Wie geht das? Gruß, Holm
Moin, einfach die Dateien hinein kopieren. Wenn Du vorhandene inc und src Verzeichnisse nimmst, nur noch ein "Index -> Rebuild" und es sucht sich alles selbst zusammen wenn es das Make verwaltet. Bei einem neuen inc Verzeichnis musst Du das in die includes anpassen. Sollte etwas nicht gefunden werden, schaue ob Datei oder Verzeichnis auf "exclude from build" gesetzt sind. Wenn Du ein Makefile vorgegeben hast, alles wie gehabt. Bei make & friends bleibst Du ja auch, nur automatisch und vor allem - mit Textvervollständigung. Ein Aufruf von make von der Konsole ist weiterhin möglich.
hp-freund schrieb: > Moin, > einfach die Dateien hinein kopieren. Hmm...das kanns ja eigentlich nicht sein. Üblicherweise arbeite ich mit dem vi, da geht das ja noch (:r blafasel.c) aber hier hat das wohl extern zu erfolgen oder per copy&paste .. bei längeren Files wohl eher ätzend. Kennt der Eclipse-interne C/C++ Editor so ein Insert from File ? Selbst das AVR-Studio 4 hatte so ein Kommando "add existing source/header File to the project". Ich habeversucht entspechende Dateien in den Projektordner zu kopieren und dann entsprechende Files erzeugt..da werden die Dateien einfach überbügelt..so hatte ich mir das auch gedacht. Make hin oder her..ich arbeite mit FreeBSD und BSD make ist was Anderes als GNU-Make..ich vermute das da die nächsten Probleme zu erwarten währen.. Ich will aber Jemandem der bisher nur unter Windows mit Bascom gearbeitet hat beibringen wie er unter Linux/Unix klar kommt. Wenn ich aber schon bei den ersten 3 "Takten" auf seltsame Probleme stoße finde ich das nicht ansatzweise putzig.... Gruß, Holm
Da gibt es wohl noch Unklarheiten. Ich meinte Du kannst einzelne Dateien oder auch Verzeichnisse dem Projekt hinzu fügen. Nehmen wir an Du hast ein Verzeichnis "meine_libs" mit den Unterverzeichnissen "inc" und "src". Dann kannst Du natürlich "meine_libs" komplett in das Projekt kopieren oder auch den link darauf. Unter "File -> Import" gibt es noch mehr Möglichkeiten.
>aber hier hat das wohl extern zu erfolgen oder per copy&paste .. bei >längeren Files wohl eher ätzend. Einfacher geht es doch nun wirklich nicht mehr. Gedankensteuerung kann Eclipse noch nicht.
Noch vergessen: Du kannst sogar ein Bibliothek Projekt als Referenz Projekt angeben.
hp-freund schrieb: > Da gibt es wohl noch Unklarheiten. > > Ich meinte Du kannst einzelne Dateien oder auch Verzeichnisse dem > Projekt hinzu fügen. > > Nehmen wir an Du hast ein Verzeichnis "meine_libs" mit den > Unterverzeichnissen "inc" und "src". > > Dann kannst Du natürlich "meine_libs" komplett in das Projekt kopieren > oder auch den link darauf. > > Unter "File -> Import" gibt es noch mehr Möglichkeiten. Ich habe es nicht mit Subdirectories versucht, sondern mit einzelnen Files und der Menüpunkt "File -> Import" gliedert sich unter "General" in "Archive File" mit Kompressionssymbol, in "Existing Projects into Workspace", "File System", "Preferences" und "Projects from Folder or Archive". Nichts davon paßt. Unter "C/C++" gibts "C/C++ Project Settings" und "Projects from Folder or Archive"...nix paßt. Ich möchte zu einem Projekt ein existierndes File hinzufügen... >Noch vergessen: Du kannst sogar ein Bibliothek Projekt als Referenz Projekt angeben. ..und was genau tut das? @dummy: "Einfacher geht es doch nun wirklich nicht mehr. Gedankensteuerung kann Eclipse noch nicht." Du machst scheinbar Deinem Namen alle Ehre? Bei ein paar Hundert Zeilen wird das zeitraubend und nervig. Ich hatte oben schon angedeutet das es diesen (an und für sich selbstverständlichen) Menüpunkt selbst im alten AVR Studio gibt. Also bitte...etwas weniger dümmlich, ja? Gruß, Holm
Man kann die Dateien einfach per Drag 'n Drop in das Eclipse Projekt werfen.
Holm T. schrieb: > Bei ein paar Hundert Zeilen wird das zeitraubend und nervig. Das verstehe ich jetzt auch nicht mehr. Wenn Du einfach eine z.B. serial.c und serial.h hast, kannst Du die im Projekt in die Verzeichnisse src und inc einfügen bzw. mit Drag and Drop rein ziehen. Oder was meinst Du mit "existierende C-Quellen hinzufügen"? Holm T. schrieb: > Bibliothek Projekt als Referenz Projekt > angeben. > > ..und was genau tut das? Nehmen wir an, all deine gesammelten Werke möchtest Du in einer mylib.a zusammen fassen, dann kannst Du eine library Projekt erstellen das dies übernimmt und dann dieses als Referenz angeben. Dann wird bei der Änderung am library Projekt auch für das executable Projekt immer die aktuelle Version deiner Lib Dateien verwendet.
hp-freund schrieb: > Holm T. schrieb: >> Bei ein paar Hundert Zeilen wird das zeitraubend und nervig. > > Das verstehe ich jetzt auch nicht mehr. ich hoffe er meinte nicht die Dateien neu zu erzeugen und die Inhalte per copy & paste zu übertragen?
Ok, mit der Drag&drop Geschichte muß ich mal experimentieren, ich nehme X11 im Wesentlichen als Terminalmultiplexer und operiere mit filemanagern etc kaum mal herum..ich werde das untersuchen. anderes Problem: Die von mir verwendete rfm12 Bibliothek von "Das Labor" benutzt aus meiner Sicht ein Unart wie diese hier: rfm12.c: /* * include extra features here * all of the stuff in there is optional, so there's no code-bloat.. */ #include "include/rfm12_extra.c" Wobei das dieses enthaltende File rfm12.c in einem Diretory src neben include liegt. Eclipse hat sich die Directorystruktur angeguckt und ist der Meinung das es eine gute Idee wäre erst mal in include das File rfm12_extra.c in ein Objekt zu übersetzen..was schief geht, weil in rfm12.c header reingeholt werden die rfm12_extra.c benötigt. Wie erkläre ich Eclipse das es die Finger von rfm12_extra.c lassen und nur dessen Code beim Übersetzen von rfm12.c mit dem Präprozessor reinholen soll? Ich halte diese Struktur für doof, eine Library funktioniert aus meiner Sicht anders, hier aber gibt es einen three mit sourcen der nur über includes hereingholt wird..und das Ganze wird dann Library genannt...nicht meine Idee. Edit: Drag&Drop funktioniert so nicht. Gruß, Holm
Na ja, include von .c Datei... Aber gut, geh auf die .c mit der rechten Maustaste -> Properties -> C/C++ Build -> Exclude resource from build dann wird diese ignoriert.
Johannes S. schrieb: > hp-freund schrieb: >> Holm T. schrieb: >>> Bei ein paar Hundert Zeilen wird das zeitraubend und nervig. >> >> Das verstehe ich jetzt auch nicht mehr. > > ich hoffe er meinte nicht die Dateien neu zu erzeugen und die Inhalte > per copy & paste zu übertragen? Doch, meinte Er. Also noch mal: Ich mache ein neues C Projekt mit einer Datei main.c und einer main.h. In einem anderen nicht Eclipse Projekt liegen 2 Dateien uart.h und uart.c und diese möchte ich nun nachträglich dem Projekt main hinzufügen, weil ich plötzlich eine Uart für Debugging Ausgaben brauche. Eclipse hat das uart Directory nicht unterhalb seines Projektordners, also erzählt mal bitte einem Doofen wie genau man die da "hineinzieht" ohne die Files neu zu erzeugen (mit Eclipse) und den Inhalt da rein zu kopieren. Gruß, Holm
uart.h mit zu main.h ins Verzeichnis uart.c mit zu main.c ins Verzeichnis falls alle in einem Verzeichnis liegen, einfach die beiden dazu.
Ja, das verstehe ich unter drag&drop.. aber eclipse sieht kein uart.c und uart.h das ich draggen könnte, da es innerhalb des Eclipse Workspaces kein Directory gibt das diese Files enthält. Gruß, Holm
hp-freund schrieb: > Na ja, include von .c Datei... ..ja eben. Die Header funktionieren aber genau so komisch... > > Aber gut, geh auf die .c mit der rechten Maustaste > -> Properties -> C/C++ Build -> Exclude resource from build > dann wird diese ignoriert. Danke, ich probiere es aus. Gruß, Holm
Holm T. schrieb: > da es innerhalb des Eclipse Sind ja auch noch nicht drin. Zieh sie über einen Dateimanager rein. Ausser Du hast sie schon ausserhalb eclipse rein kopiert, dann mit F5 Ansicht aktualisieren.
hp-freund schrieb: > Holm T. schrieb: >> da es innerhalb des Eclipse > > Sind ja auch noch nicht drin. Zieh sie über einen Dateimanager rein. ..eben das hat nicht funktioniert...das zieht sich wieder zurück :-) Dateimanager ist hier dieses mate-ding, kann mir nicht merken wie das heißt. Machst Du das unter Windows? > > Ausser Du hast sie schon ausserhalb eclipse rein kopiert, dann mit F5 > Ansicht aktualisieren. Mal sehen. Neuigkeit dazwischen: Ich habs geschafft ein Binary zu erzeugen, echt ne schwere Geburt..mit klick-war-games... (wobei das natürlich an zum großen Teil an dieser "Bibliotheksstruktur" liegt....) Gruß, Holm
File->Import->FileSystem dann Directory aussuchen, anwählen und die Dateien kopieren, die man im Projekt haben möchte.
Holm T. schrieb: > Machst Du das unter Windows? Nein. Linux. Holm T. schrieb: > das zieht sich wieder zurück Rechte? Nicht getroffen? Holm T. schrieb: > wobei das natürlich an zum > großen Teil an dieser "Bibliotheksstruktur" liegt.... Wird es sein. Normalerweise kein grosses Ding.
Pete K. schrieb: > File->Import->FileSystem > > dann Directory aussuchen, anwählen und die Dateien kopieren, die man im > Projekt haben möchte. Danke Pete! Genau das ist es was ich von Anfang an wissen wollte..allerdings kauft Eclipse auch scheinbar irgendwie aufgefundene Files auf... Mir fehlt da noch die Übung. Drag & Drop funktioniert auch ..wenn man es auf den Projektnamen fallen läßt... :-) Ich habe das Kompilat nun auch auf eine Hardware "geavrduded" und freundlicherweise verhält sich das genaus wie das mit make program erzeugte Ergebnis :-) Ein Problem hatte ich dabei aber noch: Die AVRdude Mimik wollte unbedingt ein $Prokectname.hex an avrdude übergeben..was nicht existierte, es gab aber .elf file dasdieser eignetlich auch begreifen müßte. Ich habe irgendwann die Radiobuttons zum erzeugen des hex files für eerpom und flash gefunden, damit ging auch das programmieren..aber ich habe nicht gefunden wo man die avrdudemimik auf .elf umstellt..dabei bin ich die Dialoge mehrfach durch. Tomaten auf den Augen? Gruß, Holm
Holm T. schrieb: > Ein Problem hatte ich dabei aber noch: Die AVRdude Mimik wollte > unbedingt ein $Prokectname.hex an avrdude übergeben..was nicht > existierte das .hex kann man auch im make oder post-build step mit 'objcopy' und den passenden Parametern erstellen lassen.
Ja,, das habe ich ja im Endeffekt mit den beiden Radiobuttons (Flash und EEPROM Hexfile generieren) getan..die Frage ist andersrum..wie stelle ich an der AVRdude Mimik ein das dort kein .hex erwartet wird? Aus dem avrdude Manual: "Provided libelf(3) was present when compiling avrdude, the input file can also be the final ELF file as produced by the linker. The appropriate ELF section(s) will be examined, according to the memory area to write to." Ergo müßte auch .elf gehen und der avrdude sammelt sich die interessanten Sections selbst raus...aber wo wird das script für den avrdude entsprechend generiert? Ich würde ggf. es gerne anpassen.. Gruß, Holm
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.