Lowlevel
Lowlevel => Lowlevel-Coding => Thema gestartet von: Another Stupid Coder am 28. November 2004, 15:18
-
Hallo,
(nur mal im vorraus ich spreche nicht von Instanzen einer Klasse, sondern von normalen integer variablen.)
Folgendes Problem: Globale Variablen klappen ganz normal wenn ich sie global deklariere und dann in einer funktion initialisiere bsp:
int foo;
main()
{
foo = 3;
};
Doch wenn ich ihnen gleich einen Wert zuweisen will, so funktioniert das nicht also:
foo = 3;
main()
{
}
klappt nicht...weiß jemand woran das liegen könnte? Muss man da zuerst irgendwas tun?
-
wie wärs mit "int foo = 3;" ?
-
Klar, hatte ich ja auch, war nur ein schlampigkeitsfehler im Code, beispiel...aber es funzt auch so nicht (das würde ja einen Compilerfehler geben, was es nicht, es funzt ganz einfach nicht...:\
-
Wenn ich einem Array in einer funktion werte zuweisen will, sagt der Linker "Video.obj(.text+0x8f):Video.c: undefined reference to `_memcpy'" Kann es sein, das man für Arrays Memcpy braucht? O_o
-
Hiho,
ich hatte mal ein ähnliches Problem, bei mir lags am Bootloader.
Der hatte den Code nämlich um ein Byte (oder mehrere) falsch in den Speicher kopiert, und dadurch lag eine globale Variable net mehr an 0x10034 sondern 0x10035. Bis ich das rausgefunden hab, puhh! Auf solche Fehler solltest du schauen, ansonsten können es noch das Linkerscript oder die gcc Commandline sein...
MfG GhostCoder
-
Weiß nicht, aber int foo = 3; sieht nicht aus wien Array, oder? Naja, aber probiers einfach ,al.
-
Das ist mir schon klar, aber es geht weder mit normalen Variablen noch mit arrays nur kommt bei arrays noch das mit _memcpy dazu und dafür wollte ich keinen neuen Thread aufmachen.
-
Sag mal die Parameter die du dem Compiler gibst, vielleicht hat es was damit zutun, die biult_in functionen müssen z.b. raus, vielleicht hat memcpy was damit zu tun.
-
Hm...ich hatte nur --ffreestanding, ich nehme dann lieber noch --no-builtin dazu ;)
EDIT: so, jetzt habe ich es mit --no-builtin getestet, klappt immer noch nicht
-
Bei mir gehts auch immer nur alles wenn ich ne bestimmte Optimiereinstellung drin hab^^ hier mal meine Zeile:
..\djgpp\bin\gpp -nostartfiles -nostdlib -fno-builtin -fno-rtti -fno-exceptions KernelC++.cpp -c -o kernelc++.obj -Os
Aber da ich C++ habe wird bei dir nicht alles so gehen
-
Hm...-Os habe ich drinnen... @GhostCoder Hm...Code sollte normal geladen werden, ich werde bei gelegenheit das Linkerscript posten und das makefile :)