Сборка Jonesforth - asm / unistd.h: нет такого файла или каталога - PullRequest
0 голосов
/ 08 декабря 2018

При попытке собрать Jonesforth (32-битная программа GNU Assembler) в Ubuntu 16.04.4 64-битная (Xenial Xerus) я вижу следующее:

~/src/jonesforth $ make
gcc -m32 -nostdlib -static -o jonesforth jonesforth.S
jonesforth.S:1154:24: fatal error: asm/unistd.h: No such file or directory
compilation terminated.
Makefile:11: recipe for target 'jonesforth' failed

Глядя в файл jonesforth.S, я заметил следующие строки:

//#include <asm-i386/unistd.h>  // You might need this instead
#include <asm/unistd.h>

Я пытался использовать asm-i386/unistd.h вместо этого, но, похоже, это тоже не помогло.

Является ли лучший способ действий для установки большего количества заголовков через sudo apt install linux-headers...?Если так, с чем мне идти?Должно ли linux-headers-generic быть достаточным?

Или мне следует изменить заголовок, на который ссылается jonesforth.S?

Ответы [ 2 ]

0 голосов
/ 12 декабря 2018

Вам необходимо установить пакет multilib.

0 голосов
/ 08 декабря 2018

Добавление -I /usr/include/x86_64-linux-gnu в рецепт make, похоже, решило проблему:

jonesforth: jonesforth.S
        gcc -I /usr/include/x86_64-linux-gnu -m32 -nostdlib -static $(BUILD_ID_NONE) -o $@ $<

Благодаря предложению Питер Кордес выше!

...