Не могу найти символ записи _start при попытке связать c main с функцией сборкиLinux

Ответить
Anonymous
 Не могу найти символ записи _start при попытке связать c main с функцией сборки

Сообщение Anonymous »

Могу читать ассемблер, но пытаюсь научиться писать на нем небольшие функции, но не могу связать основную функцию, написанную на C, которая вызывает внешнюю функцию, написанную с помощью gas. Целью является Linux x64.
Вот файл main.c:
#include

extern int somefunc();

int main() {
int x = somefunc();
printf("returned %d\n", x);
return 0;
}

вот это нф.с:
.global somefunc

.data
.text

somefunc:
movl $123, %eax
ret

Вот команды компиляции:
> gcc -c -fno-pie main.c -o main.o
> as sf.s -o sf.o
> ld -lc main.o sf.o -o m
ld: warning: cannot find entry symbol _start; defaulting to 0000000000401020


Подробнее здесь: https://stackoverflow.com/questions/783 ... ly-functio
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»