2013-11-08 6 views
0

Я работаю над набором библиотек для проекта, и мы хотели бы, чтобы их легко было включить. Из-за этого мы помещаем библиотеки в/usr/lib/skywalker и заголовки в/usr/include/skywalker. В каждой программе мы включаем библиотеки, например, #include.По умолчанию включен путь Glibc

Проблема возникает, когда мы хотим перекрестно скомпилировать с arm-linux-gnueabi-gcc (конечная платформа - это рука). Кажется, что он не получает/usr/include как путь включения по умолчанию, и он не компилируется. Я искал в Интернете и пробовал несколько параметров для компилятора, и я мог найти только каталог библиотек.

Как узнать путь по умолчанию для заголовков в определенном компиляторе? Как мы можем легко решить эту проблему (эти библиотеки будут использоваться другой группой разработчиков)?

+0

Я не программист C, но я предполагаю, что это потому, что, когда вы кросс-компиляции для различных платформ, вам нужны различные заголовки, поэтому она не может используйте '/ usr/include'. Стандартный старомодный способ решить эту проблему - использовать autoconf, automake и make; более новый способ решить это с помощью CMake, который намного проще в использовании. Я не знаю, поддерживают ли они кросс-компиляцию, но я был бы удивлен, если бы они этого не сделали. –

+1

Попробуйте 'arm-linux-gnueabi-gcc -v -c somefile.c', ищите' #include <...> поиск начинается здесь: '. –

+0

@ н.м .: Я искал это. Я пробовал каждую информационную команду в компиляторе, и ничего не работало. Так легко! Теперь я могу все решить. Большое спасибо. – markmb

ответ

0

Просто используйте этот псевдоним:

alias mygcc='gcc -I /whatever/' 

Кроме того, вы можете использовать переменные окружения C_INCLUDE_PATH и CPLUS_INCLUDE_PATH; больше на нем:

+0

Я искал более элегантное решение. Комментарий от @ n.m. помогли мне найти решение. – markmb