Сборка бизон из источника, может быть сделана с помощью обычного ./configure && make && make install
.
Моя работа заключается в создании бинарного бинарного файла, который также может использоваться на других машинах.
Чтобы указать путь сборки зубров, можно использовать параметр --prefix
, например,
$ ./configure --prefix=/home/users/yuhao10/bison-3.4/output
Дерево построенных файлов зубров выглядит так:
├── bin
│ ├── bison
│ └── yacc
├── lib
│ └── liby.a
└── share
├── bison
│ ├── m4sugar
│ │ ├── foreach.m4
│ │ └── m4sugar.m4
со многими неважными файламиопущено.
Проблема в том, что встроенный двоичный файл bison
всегда ищет файлы m4sugar
по тому же абсолютному пути, в который он встроен.
Если в некоторые из них ставится bison
случайный путь на других машинах, он сообщит
./bison: /home/users/yuhao10/bison-3.4/output/share/bison/m4sugar/m4sugar.m4: cannot open: No such file or directory
Есть ли способ создать или запустить bison
, который освобождает файлы данных, такие как m4sugar
от относительного пути?