Доброго времени суток уважаемые форумчане!
Недолго побаловался с платой на at91sam9260 покомпилировал программы типа hello World и захотелось поставить что нибудь более серьёзное на плату (Appache, PostgresSQL). но проблема в кросс компиляции! Скачав исходники сподкнулся на вопросе а как компилировать для платы! Погуглив нашёл 2 способа
1) кросс компиляция на машине
2) компиляция на целевой платформе
а как это сделать подробно не нашёл нигде!
Вот в этом и вопрос! Ткнте носом на что нибудь почитать как это делается?
Заранее спасибо за помощь!
захотелось поставить что нибудь более серьёзное на плату (Appache, PostgresSQL). но проблема в кросс компиляции!
Ставить монструозные Apache и PostgresSQL помоему нет никакого смысла, если только вы не хотите перенести готовый проект с "большого" Linux на плату и ему требуются именно эти пакеты. Кросскомпиляция - buildroot, там есть lighttpd и sqlite, встроенный http сервер есть и в самом busybox.
Понял как правильно использовать переменные окружения CC CROSS_COMPILE попробывал потренироваться на Appache ничего не вышло говорит что мол компилятор создаёт не запускаемые файлы! Попробывал скомпилить интерпритатор Python вроде скомпилился но на плате не запускается!!!
Вот такие плачевные результаты!
А какой-нибудь динамически полинкованный hello_world запускает нормально? Я себе благополучно скросскомпил linux-gpib вместе с драйверами, библиотекой и тестовой программой. Как правило CC ручками не указывается, если пакет использует autotools, то более корректно использовать --target и --host
И для правильной кросс-сборки некоторых пакетов нужно будет настроить запуск arm-овых бинарников с помощью qemu-arm и binfmt_misc (то бишь чтобы было можно в x86 окружении запускать ARM-овые ELF-бинарники).
К сожалению пока научился только соборать с ключём -static. Я этот ключ засунул в переменную окружения наподобие export CC="arm-none-linux-gnueabi -static" и с такой переменной компилировал пакет! Есть придчувствие что так делать нехорошо! А как компилировать без static тоже пока тёмный лес! Компилятор собрал просто скопировал архив sourceryg++ распаковал в домашнюю директорию и настроил переменную PATH!
А насчёт запуска армовых бинарников наступил на грабли при компиляции appache!
Можно пожалуйста подробнее как настроить запуск ARM бинарников и как компилить без -static!
Заранее большое спасибо!
> Есть придчувствие что так делать нехорошо!
Предчувствие вас не подводит, так делать не то что "не хорошо", а очень даже плохо, особенно в случае таких крупных проектов как apache.
> Можно пожалуйста подробнее как настроить запуск ARM бинарников и как компилить без -static!
Начнём с того, какую стандартную сишную либу вы используете? Сомневаюсь что glibc или eglibc.