Кросс-компиляция с использованием общих библиотек - PullRequest
1 голос
/ 08 февраля 2012

Я нуб к встроенным системам. Я работаю с комплектом, TS-7390, который использует ARM9. Мне удалось составить заявку на это. У меня вопрос, как я компилирую с использованием общих библиотек. Мне нужна библиотека на хосте?

Ответы [ 3 ]

3 голосов
/ 08 февраля 2012

Зависит от того, как используется общая библиотека.Если приложение скомпилировано с библиотекой так, как будто общая библиотека связана постоянно, да, она понадобится вам на хосте.Если разделяемая библиотека загружается динамически через dlopen, она вам не понадобится на хосте.В обоих случаях эта библиотека вам также понадобится.

2 голосов
/ 08 февраля 2012

Вкратце: да.

Позвольте мне объяснить, почему. Когда вы настраиваете среду кросс-компиляции, вам нужны и заголовочные файлы, и библиотеки, так как при компоновке компилятор проверяет, что все символы разрешены.

Как вы можете себе представить, кросс-компилятора недостаточно, если ваша программа использует не только libc. В этом случае вам также нужно место, где у вас есть все необходимые файлы (заголовки, библиотеки и т. Д.). Поскольку работа со всеми зависимостями может занимать много времени, часто предпочтительнее использовать какой-либо инструмент или дистрибутив, который сделает это за вас.

Например, я использую OpenEmbedded , который требует немного времени для изучения, но может помочь вам, когда вам приходится иметь дело с библиотеками.

1 голос
/ 08 февраля 2012

Вам также необходимо выполнить кросс-компиляцию совместно используемой библиотеки перед кросс-компиляцией приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...