3Danke
ERLEDIGT
JA
JA
ANTWORTEN
8
8
ZUGRIFFE
385
385
EMPFEHLEN
-
11.02.12 12:20 #1
- Registriert seit
- Mar 2010
- Ort
- Neuburg a. D.(Bayern)
- Beiträge
- 98
Sooo, hallo zusammen,
ich bin gerade dabei ein eigenes "iostream" für mein eigenes System zu Programmieren (siehe Anhang).
Aber wie definiert man Funktionen, die nicht inline sind? (in meinem Fall soll imks-libs.c einfach in mein "main.c" vom Kernel eingebunden werden) Wenn ich jetzt z.B. meine Hauptdatei "imks-libs.c" habe:
und "syscall.h":Code cpp:1 2
#include "syscall.h" #include "syscall.c"
, dann müsste "syscall.c" doch folgendermaßen aussehen:Code cpp:1 2 3 4
#ifndef SYSCALL_H_INCLDED #define SYSCALL_H_INCLDED int syscall_al_ah_bx_cx_dx(_bit8 numbera/*al*/, _bit8 nummerb /*ah*/, _bit16 bx, _bit16 cx, _bit16 dx); #endif /*syscall-h-included*/
Code cpp:1 2 3 4 5 6
#include "syscall.h" int syscall_al_ah_bx_cx_dx(_bit8 numbera/*al*/, _bit8 nummerb /*ah*/, _bit16 bx, _bit16 cx, _bit16 dx) { return 0; //0=no_problem };
aber der Compiler (Codeblocks, gcc) gibt mir folgende Fehlermeldung aus:
wenn ich "syscall.c" nicht in "imks-libs.c" einbinde kommen die Fehlermeldungen nicht, ebenso, wenn ich "syscall.c" ganz weglasse und die Funktion in die Header-Datei ganz reinschreibe.Code :1 2 3 4 5 6
obj/Debug/syscall.o||In function `syscall_al_ah_bx_cx_dx':| /media/SIMONDZ/JuFo/imks-libs-dev/imks-libs-dev/syscall.c|5|multiple definition of `syscall_al_ah_bx_cx_dx'| obj/Debug/imks-libs.o:/media/SIMONDZ/JuFo/imks-libs-dev/imks-libs-dev/syscall.c|5|first defined here| /usr/lib/gcc/x86_64-linux-gnu/4.6.1/../../../x86_64-linux-gnu/crt1.o||In function `_start':| (.text+0x20)||undefined reference to `main'| <--das hier kommt daher, dass ich kein main() habe und ist mehr oder weniger gewollt ||=== Build finished: 3 errors, 0 warnings ===|
Beim Googlen bin ich auf irgendwas mit Bibliotheken gestoßen (heißt das jetzt ich brauche Bibliotheken?), hab es aber nicht ganz verstanden (auf Englisch).
wie bekomme ich es also richtg hin, dass die Funktionen kein Inline sind?
Mfg
Clund
P.S. wenn mir jemand nicht folgen kann, dann möge er sich melden und ich beschreibe mein Problem noch ausführlicherGeändert von Clund (11.02.12 um 12:41 Uhr) Grund: "cpp"-Codetags
Früherer Name: Cpp-Freak
Bildung ist, was übrig bleibt, wenn man alles vergessen hat, was man in der Schule gelernt hat
-Albert Eistein
Wirklich, ich habe nicht vor Microsoft zu zerstören. Das wird nur ein ziemlich unbeachteter Nebeneffekt sein
-Linus Torvalds
Die meisten Computerpobleme sitzen zwischen Tastatur und Stuhl
Google ist dein Freund
-
Hi
warum inkludierst du die c-Datei?
Du schreibst ja selber, ohne diesem Include funktionierts.
Zum Inkludieren sind nur die h-Dateien.Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
"Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?
-
11.02.12 12:48 #3
- Registriert seit
- Mar 2010
- Ort
- Neuburg a. D.(Bayern)
- Beiträge
- 98
aber wenn die c Dateien nicht includiert werden, dann bringen sie doch nix

oder habe ich da was falsch verstanden?
Clund
-
11.02.12 12:57 #4
- Registriert seit
- May 2007
- Ort
- Dresden (Sachsen)
- Beiträge
- 1.956
Wenn du Dateien kompilierst, dann gibst du doch an, auf welche Dateien er zurückgreifen muss:
Code :1
gcc -o {Name der Binärdatei} {Datei 1.c} {Datei 2.c} {...}Ich mag:- positive Bewertungen meiner Beiträge
- ein Danke für meine hilfreichen Beiträge
Dabei kann ich dir helfen: PHP --- Javascript --- Ruby --- Coffeescript --- CSS --- HTML --- Webtechnologien --- Shell --- UNIX
... noch was: falls du mit dem Thema hier fertig bist, dann kannst du es auch als erledigt markieren.
-
11.02.12 13:16 #5
- Registriert seit
- Mar 2010
- Ort
- Neuburg a. D.(Bayern)
- Beiträge
- 98
Moin,
ich verwende Codeblocks und die ganzen files sollen dann in /usr/include/imks-libs-dev/ ligen. "imks-libs.c" soll dann von den Normalen Projekten (wie iostream) eingebunden werden (dafür habe ich auch schon makefile, etc wo ich deinen speziellen Befehl verwenden kann)
kann man alle *.c Dateien in eine zusammenfassen, und diese dann gcc übergeben?
Clund
-
Kann man. Aber wozu dann überhaupt noch h-Dateien?
Und die Übersichtlichkeit wird darunter sehr leiden...
Zum "Falsch verstanden"-Post: Vermutlich.
Du musst wirklich nur die h-Dateien inkludieren.
Die c-Dateien werden alle einzeln kompiliert und dann zusammengelinkt.Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
"Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?
-
11.02.12 13:52 #7
- Registriert seit
- Mar 2010
- Ort
- Neuburg a. D.(Bayern)
- Beiträge
- 98
also im großen und ganzen habe ich dann 1 Datei die ich includiere (imks-libs.c)
und noch ne Datei, in der alle .c Dateien includiert sind, die ich dem Compiler übergebe, oder?
soll ich imks-libs.c dann besser in imks-libs.h umbenennen und imks-libs.c (wo alle .c eingebunden sind) dem Compiler übergeben?
Edit: in den .h Dateien sind wichtige structs drinne
Edit, die zweite: ich kann trotzdem (wegen den structs) noch die .h Dateien in die .c Dateien includieren, oder?
-
Nein, keine C-Dateien includieren. Auch nicht in h umbenennen.
Warum willst du nicht einfach mehrere c-Dateien beim kompilieren angeben,
so wie crack gezeigt hat?Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
"Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?
-
11.02.12 18:31 #9
- Registriert seit
- Mar 2010
- Ort
- Neuburg a. D.(Bayern)
- Beiträge
- 98
ja, ok mach ich, es können nur endlos viele werden....
(erstmal erledigt)
ClundGeändert von Clund (11.02.12 um 18:33 Uhr)
Früherer Name: Cpp-Freak
Bildung ist, was übrig bleibt, wenn man alles vergessen hat, was man in der Schule gelernt hat
-Albert Eistein
Wirklich, ich habe nicht vor Microsoft zu zerstören. Das wird nur ein ziemlich unbeachteter Nebeneffekt sein
-Linus Torvalds
Die meisten Computerpobleme sitzen zwischen Tastatur und Stuhl
Google ist dein Freund
Ähnliche Themen
-
span-container nicht inline projeziert
Von Snowat2011 im Forum CSSAntworten: 4Letzter Beitrag: 23.07.08, 10:43 -
VBA Source aus Excel in Datei speichern
Von KINK_LEO_III im Forum Visual Basic 6.0Antworten: 1Letzter Beitrag: 14.06.07, 16:39 -
Header- und Source-Files [Anfänger-Frage]
Von LukeS im Forum C/C++Antworten: 3Letzter Beitrag: 10.10.05, 08:04 -
[Anfänger] Fragen zu: Funktionen, Strings, Datentypen etc.
Von Apfelschorle im Forum C/C++Antworten: 2Letzter Beitrag: 08.03.05, 20:16 -
Fragen zu nem Page-Header
Von Marvin im Forum PhotoshopAntworten: 36Letzter Beitrag: 11.05.02, 14:22





Zitieren


Login






