Требования к кросс-компиляции для C

У меня есть некоторые базовые знания о компиляции C, но мне нужно получить ответы на пару общих вопросов о кросс-компиляции. В моем случае я пытаюсь скомпилировать программу на моем компьютере с Fedora Linux, которая будет запускаться на одноплатном компьютере ARM.

  1. Мой первый вопрос о заголовках. Я загрузил пакет инструментов arm Linux, и он содержит файлы заголовков, такие как stdio.h, в каталоге include. Должен ли я использовать этот "целевой" подключаемый каталог вместо подключаемых каталогов моей системы при кросс-компиляции? Или можно указать на каталоги включения моей системы, такие как / usr / include? (Эти файлы заголовков кажутся разными, когда я их сравниваю.)

  2. Что происходит, если файл заголовка не существует. В моем случае я также планирую использовать библиотеку cURL на плате ARM. Могу ли я просто указать каталог include в загруженном мной исходном пакете curl, не беспокоясь о целевой архитектуре? Если да, значит ли это, что мой первый вопрос неуместен?

  3. Допустим, я хочу создать статическую ссылку на библиотеку. Нужно ли перед этим скомпилировать эту статическую библиотеку для целевой платформы ARM? Или я могу использовать статические библиотеки, установленные в моей системе напрямую (надеясь, что процесс кросс-компиляции позаботится о бизнесе)?

  4. Если я решу динамически подключиться к библиотеке, единственным требованием будет наличие этой библиотеки в целевой системе скомпилирован для ARM и установлен в один из каталогов LD_LIBRARY_PATH на плате ARM, я прав?

Спасибо за помощь.

7
задан Burak 8 November 2010 в 00:38
поделиться