Я пытаюсь перекрестно скомпилировать проект и библиотеку, от которой он зависит, для использования во встроенной системе. Как приложение, так и использование зависимости используют automake. Я смог скомпилировать библиотеку без особых проблем.Перекрестное компиляция с automake
./configure --host=powerpc-none-linux-gnuspe --prefix=/home/me/build_dir
make
make install
Я использовал --prefix
так, что make install
не ставил выходы в моей файловой системы со всеми x86 LIBS. Я также попробовал запустить configure без --prefix
и вместо этого задал переменную окружения DESTDIR
перед запуском make install
. Они, похоже, делают то же самое. Я хочу, чтобы у меня была возможность набрать /home/me/build_dir
и поместить ее в корень файловой системы встроенной цели. Я надеюсь, что --prefix
не просопил абсолютный путь на моей главной машине.
Затем я попытался пересечь скомпилировать приложение, которое использует эту библиотеку:
./configure --host=powerpc-none-linux-gnuspe --with-sysroot=/home/me/build_dir
Я выбежала на 2 вещи. Сценарий configure успешно завершен, но первый make не удалось, поскольку он не смог найти один из заголовков. Он находится под /usr/include
вместо /home/be/build_dir/usr/include
. Должна ли опция --with-sysroot
также модифицировать каталоги включения или я что-то упускаю?
Кроме того, я получаю предупреждение
libtool: link: warning: library libstdc++.la was moved
Я получаю ощущение, что я пропустил что-то. Является ли это предупреждение чем-то, что я могу смело игнорировать или я где-то испортил?
Подводя итоги: 1) Есть ли разница между ./configure --prefix=x
и make DESTDIR=x install
? 2) Каков правильный способ обновления пути поиска для заголовков библиотеки? 3) Почему я получаю предупреждение о libstdC++, и о чем я должен беспокоиться?
Благодарим за полезную информацию. Я не уверен, что понимаю, что вы подразумеваете под оболочкой оболочки оболочки. – zmb