Кросс-компиляция: как установить с одним префиксом и развернуть с другим префиксом?
Я пытаюсь кросс-компилировать некоторые приложения для альтернативной архитектуры.
Моя типичная процедура заключается в следующем:
- Загрузите и распакуйте исходный код в / var / source
- ./configure --prefix = / var / install CC = [my-cross-compiler-gcc]
- делать
- сделать установку
Это работает, как и ожидалось: мое приложение установлено в /var/install.
Однако когда я развертываю это приложение на своей альтернативной архитектуре, я не хочу, чтобы оно развертывалось в /var/install. Я просто хочу, чтобы он был установлен в / как обычно.
Я могу скопировать его в /, но само приложение все еще пытается заглянуть внутрь / var / install для различных настроек по умолчанию.
Я хочу скомпилировать и установить программное обеспечение в моей системе x86, но когда я разверну его на альтернативной архитектуре, я хочу, чтобы оно было таким, как если бы я установил его в /, а не в /var/install.
Есть ли способ выполнить то, что я пытаюсь сделать?
2 ответа
Если я правильно понимаю, /var/install
на вашей системе x86 будет /
на вашей альтернативной архитектуре. Чтобы решить вашу проблему, вам нужно изменить следующий шаг:
configure, безусловно, будет делать некоторые sed в файле, поэтому вам нужно указать конечное место
./configure --prefix=/ CC=[my-cross-compiler-gcc]
makefile, сгенерированный automake, поддерживает переменную DESTDIR, которая добавляется к пути установки:
make DESTDIR=/var/install install
У меня была похожая проблема, но я выполнял кросс-компиляцию и хотел установить ее в корневой каталог моего устройства. В этом случае я указал:
make install DESTDIR=<path/to/rootfs>