Problem med gcc, C-programmering

Permalänk
Medlem

Problem med gcc, C-programmering

Hej,

Försöker kompilera min kod på en AMD 64 Turion processor som inte sitter i en dator utan på en typ av instickskort. Iaf så ligger det ett Fedora-baserat linux på kortet.
När jag kör kommandot:
AMC111: gcc -o NetworkTestCard Benchmark.o Network.o

Får jag felet:
/usr/bin/ld: warning: cannot find entry symbol _start; defaulting to 08048560

Network.o och Benchmark.o är kompilerade men inte länkade.

Någon som har en idé vad felet kan vara?

EDIT: Kan även tillägga att eftersom det är en varning så får jag en fil, men när jag försöker köra den säger den Illegal instruction.

Permalänk
Medlem

Hade varit lite lättare om möjligt att se koden.

Visa signatur

.

Permalänk
Medlem

Här är en artikel som förklarar problemet, och annat som är bra att veta: The True Story of Hello World.

Visa signatur

Bra, snabbt, billigt; välj två.

Ljud
PC → ODAC/O2 → Sennheiser HD650/Ultrasone PRO 900/...
PC → S.M.S.L SA300 → Bowers & Wilkins 607

Permalänk
Medlem

Problemet är systemet skapar en entrypoint som kallas för main. Dock så behöver lite klister skapas för att man hoppa in i main, det vanliga är att kalla denna rutin för just _start. Dock så "funkar lite olika" det lite olika beroende på om man vill programmera mot hårdvaran eller skriva ett program. För att detta skall ske korrekt i OSet så finns det en hel del hjälp att få av olika libs. I linux och gcc så kan man antingen göra som i länken som Phod skickade eller så använder man gcc som en länkare och då kommer den göra det åt dig. I andra system ser det lite annorlunda ut.
plan9 har 3 olika entrypoints i deras kompilator (dock så har programmen bara 1): _main, main och threadmain. Där _main är för hårdvara och main och threadmain för mjukvara.

Visa signatur

Plan9 fan. In glenda we trust.