Linkerproblem
-
Hi, ich hab folgendes Problem
mittels einem Linkerscript linke ich mehrere object Dateien zueinander, alle includieiren eine header datei, nun zum problem
ich habe in einer code-datei diese funktionen:
void func1()...
void func2()...diese beiden sind nun auch im header definiert.
Wenn ich nun im anderen Quellcode diese beiden funktionen nach einander aufrufe compiliert und linkt es fehlerfrei, allerdings gibts probleme wenn ich func2() vor func1() aufrufe, nun frage ich mich wo das problem liegt, bei func2 meckert er nicht, allerdings gibt er mir dann für func1 dir fehlermeldung
undefined reference..bin noch neu in diesem gebiet mit dem linken, wäre nett wenn mir jemand helfen könnte
..kleine Anmerkung es handelt sich um einen gcc Crosscompiler und linker
-
Zeig mal bitte den relevanten Code.
-
also in der file1: habe ich folgende includes:
#include "global.inc" #include "includeFile.h"
in file2:
#include "global.inc" #include "includeFile"
includeFile.h hat dann folgende includes:
#include "global.inc"
und funktionen der art
void func1(variablen);
Das linkerscript ist folgendes:
OUTPUT_FORMAT("binary") OUTPUT(kernel.bin) ENTRY(RealMode) SECTIONS { .text 0x7E00 : { *(.text) } .data : { *(.data) *(.rodata) } .bss : { *(.bss) } }
Wie gesat wenn ich die funktionen in der reihe wie die definiert wurden aufrufe klappt es, sonst nicht, und wenn sie bis einmal aufgerufen wurden klappt es später immer...
-
gut hat sich herausgestellt dass mein linker nicht richtig funktionniert hat, jedenfalls hat ein anderer liker es korrekt kopiliert, wahrscheinlich ein fehler während des compilierens des crosscompilers...