Настроить параметр "--prefix" для кросс-компиляции
Какой путь я должен пройти к --prefix
опция при выполнении кросс-компиляции: я должен указать путь на моей машине сборки или путь на целевой платформе?
Предположим, я встроил код в /home/me/arm/build/target_fs/usr
после этого я копирую файлы на свою целевую платформу, где они будут расположены по адресу /usr
, Должен ли я использовать --prefix=/home/me/arm/build/target_fs/usr
или просто --prefix=/usr
а потом make install DESTDIR=/home/me/arm/build/target_fs
?
Я думал, что --prefix
это не путь для сборки, а путь для работающей среды (то есть путь на целевой платформе). Ответы здесь заставляют меня думать, что я прав. Но есть много страниц (например, кросс-компиляция FFmpeg для Raspbian: --prefix=/my/path/were/i/keep/built/
) где люди используют путь на сборке машины для --prefix
, Так что я в замешательстве.
2 ответа
Да, вы правы, --prefix - путь к рабочей среде. Просто используйте --prefix=/usr. Вы можете проверить, в какой путь к папке команда make install установит ваш бинарный файл, установив в DESTDIR. Например, если вы используете --prefix = / usr и производите установку DESTDIR = / home / me / arm / build / target_fs, тогда двоичные файлы будут установлены в папку /home/me/arm/build/target_fs/usr. И если вы просто запустите make install, тогда бинарный файл будет установлен в вашем префиксе, т.е. в "/ usr".
Поскольку вы выполняете кросс-компиляцию, я думаю, что не имеет значения, какой префикс вы используете, потому что в любом случае вы будете устанавливать в DESTDIR, а затем копировать двоичные файлы вручную в свою цель.
Как вы можете найти:
--prefix = dirname Укажите каталог установки верхнего уровня. Это рекомендуемый способ установки инструментов в каталог, отличный от каталога по умолчанию. Каталог установки верхнего уровня по умолчанию - / usr / local.
Насколько я понимаю, вы пытаетесь скомпилировать компилятор для какой-то цели.
В этом случае prefix
будет указывать каталог, когда компилятор будет установлен после make install
Команда на сборке машины. После этого вы можете взять компилятор там.
, Должен ли я использовать --prefix=/home/me/arm/build/target_fs/usr или просто --prefix=/usr, а затем выполнить установку DESTDIR=/home/me/arm/build/target_fs?
В твоем случае prefix
Команда не имеет смысла. Потому что вы копируете двоичные файлы руками.
Также вы можете найти всю другую информацию на официальном сайте GCC: https://gcc.gnu.org/install/finalinstall.html