Hallo, ich hoffe ihr könnt mir helfen.
Ich will einen String an meinem Mikrocontroller übergeben.
Nun will ich in diesem String Buchstaben und Zahlen suchen.
Beispiel eines Strings: A1006
Nun scheitere ich aber schon bei der Suche nach dem "A".
Mein C-Code:
1
#include<stdio.h>
2
#include<string.h>
3
4
voidmain(void)
5
{
6
unsignedcharstring[10];//zB. A1006
7
printf("Programm gestartet.\n");
8
9
inputse(string,11);
10
11
if(strchr(string,'A'))
12
{
13
printf("String enthaelt ein A\n");
14
}
15
16
17
while(1);
18
}
Ich bekomme folgende Fehlermeldung ausgegeben:
Error: serikom.s51 120: unresolved reference to '_strchr'
Was mache ich falsch?
Programmiert wird mit dem Jens File Editor.
Gruß
Aus C-Sicht ist an deinem Code nichts falsch (zumindest nicht an der
Stelle)
* Das sieht nach einem Installations/Konfigurationsproblem
deiner Entwicklungsumgebung aus
* möglich wäre auch noch, dass deine Entwicklungsumgebung keinen
vollständigen Satz an Standardfunktionen mitbringt. Obwohl das
eigentlich eher unwahrscheinlich ist, da die str Funktion und im
speziellen strchr ziemlich trivial sind.
Ist denn in string.h ein Protoyp für strchr enthalten?
Wenn ja, dann deutet das ebenfalls auf ein Installationsproblem
hin.
Ist das alles? Da steht aber nicht viel drin.
Was für ein Betriebssystem hast Du?
Weil sonst könntest Du mal in Deinem Include Verzeichnis nach strchr
greppen, wo das drin ist.
kein strchr?
Ausserdem fehlt da noch jede Menge und das far da drinnen macht mich
nervös.
Ein strchr kann man sich (im Prinzip) auch leicht selber schreiben
1
farchar*strchr(farchar*pa,charc)
2
{
3
while(*pa&&*pa!=c)
4
pa++;
5
6
return(*pa==c)?pa:0;
7
}
und da das so trivial ist, wundert es mich, dass der Compilerhersteller
das nicht gemacht hat.
Wie gesagt: das far macht mich nervös. Da könnte mehr dahinter stecken.
Probier mal die Selbstbau-Version aus.
Wundert mich auch, das da so wenig drin steht.
Ich installier noch mal die etwas neue Version.
Softwarepaket ist von Wickenhäuser Elektrotechnik.
Wenn es dann noch immer nicht drin ist versuche ich die
Selbstbau-Version.
Danke.
Index schrieb:> Leider funktioniert es nicht.> Nun kommt so ein Fehler:> serikom.c 44: Error: unexpected type 'far char'
dann nimm das "far" an allen Stellen raus.
Ich habs nur mit aufgenommen, weil deine Vorlagen in string.h es auch
haben.
Index schrieb:> Leider funktioniert es nicht.>> Nun kommt so ein Fehler:>> serikom.c 44: Error: unexpected type 'far char'>>>> Muss ich wohl alles per Hand programmieren :/.
Nicht unbedingt. Du musst aber unbedingt darüber nachdenken, was Du da
compilierst und was Du uns da zeigst.
Wenn der Compiler mit far char nix anfangen kann, wieso konnte er dann
die Header inkludieren, die Du uns gezeigt hast? Bist Du sicher, dass Du
die Header aus dem richtigen Verzeichnis genommen hast? Bist Du sicher,
dass der Compiler ins richtige Verzeichnis schaut? Hast Du Deinen
Workflow korrekt eingerichtet?
Wenn Du das nicht sicher im Griff hast, wirst Du sehr bald noch viel
mehr Probleme bekommen.
Grüße,
Stefan