Проблема заключается в следующем. Когда я пишу: gcc print.s
на моем Kali Linux терминал я получаю следующее сообщение об ошибке:gcc on Kali Linux
/usr/bin/ld: /tmp/cc45uyZj.o: relocation R_X86_64_32S against `.data' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: Nonrepresentable section on output
collect2: error: ld returned 1 exit status
Я попробовал то же самое в другой дистрибутив, и она работала отлично.
Добавление -fPIC не помогает. Также не обновляется apt-get.
, если вы хотите увидеть код: https://github.com/NEGU93/Compilation.git внутри Практики> Part1. Конечно, файл print.s (кстати, все файлы .s имеют похожие ошибки, когда я делаю gcc).
Я думаю, что что-то отсутствует в дистрибутиве Кали, но я не знаю, что это может быть.
Решенный с этим! Я добавил строку «-no-pie» и работал! Большое спасибо! Есть ли способ сделать это постоянным? не нужно писать эту строку каждый раз? –
К сожалению, он по умолчанию включен для всех современных дистрибутивов. '-no-pie' в порядке, просто бросьте его в свои' CFLAGS'. – yugr