У меня есть исходный код компилятора, который я создаю следующим образом:
/path/to/srcdir/configure --prefix=/path/to/installdir
make
make install
Я хочу распространить полученный 'installdir' на другие машины с намерением, чтобы любой мог использовать двоичные файлы компилятора безпроходит 3-х этапный процесс сборки (я просто включаю installdir в свой дистрибутивный архив).
Для тестирования я копирую installdir на другой компьютер под другим пользователем, а затем просто пытаюсь скомпилироватьтестовая программа с использованием только что скопированных двоичных файлов, например:
installdir/bin/ucc -mp -o test load_bl.c
Затем я получаю сообщение об ошибке:
cc1: error: /home/sghosh/normalbuild/installdir/open64-gcc-4.2.0/include: Permission denied
cc1: error: /home/sghosh/normalbuild/installdir/open64-gcc-4.2.0/lib/gcc/x86_64-redhat-linux/4.2.0/include: Permission denied
cc1: error: /home/sghosh/normalbuild/installdir/open64-gcc-4.2.0/x86_64-redhat-linux/include: Permission denied
/home/sghosh/normalbuild/install
- это то, что указано как --prefix
во время configure
на моей сборочной машине.Для двоичного файла installdir/bin/ucc
требуются некоторые файлы в каталоге open64-gcc-4.2.0
в каталоге installdir, но поскольку этот путь указан в --prefix
, он все еще ищет его, и я хочу, чтобы он просматривал тот же каталог в текущем каталоге.машина.К вашему сведению, у меня нет привилегий sudo / root.
Как мне получить бинарный дистрибутив, который будет работать на любой машине (собрать один раз, использовать где угодно, сортирует), и в этом случае не смотреть на начальный путь --prefix
?
У меня был похожий вопрос в суперпользователе, но так как произошло много изменений, и я не получил ответа на новый вопрос, поэтому я пишу его здесь.