Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > *NIX системы: Общие вопросы > Сборка программы под Linux. |
Автор: OlegIT 20.10.2011, 09:45 |
На PC установил «Debian GNU/Linux 6.0.2.1 "Squeeze" - Official i386 DVD Binary-1 20110626-15:45». Использовал ручную установку, отметил установить всё. Но man gcc не установился. Скачал его с инета. Начал разработку программ под Linux с самой простой Test_1.c с таким текстом int main(void){ return 0; }. Запустил на компиляцию dv@oleg-it:~$ gcc -c -o ./Test_1.o ./Test_1.c. Всё нормально, файл Test_1.o создался. Программы собираюсь писать под ARM, ставлю опцию компилятора для своего ARM (ARM926EJ-S). Запускаю компиляцию (получаю ошибку) dv@oleg-it:~$ gcc -cpu=arm926ej-s -c -o ./Test_1.o ./Test_1.c gcc: unrecognized option '-cpu=arm926ej-s' Запускаю так (опять не так) dv@oleg-it:~$ gcc -mcpu=arm926ej-s -c -o ./Test_1.o ./Test_1.c `-mcpu=' is deprecated. Use `-mtune=' or '-march=' instead. ./Test_1.c:1: error: bad value (arm926ej-s) for -mtune= switch Запускаю по рекомендации компилятора (и снова не так) dv@oleg-it:~$ gcc -mtune=arm926ej-s -c -o ./Test_1.o ./Test_1.c ./Test_1.c:1: error: bad value (arm926ej-s) for -mtune= switch Предполагаю, что у меня не всё установлено, поддержки ARM нет. Как решить проблему? У меня есть ещё одна макетная плата с ARM Cortex™-A8 (ARMv7 Architecture). Какую опцию ставить в этом случае? Обнаружил, что я не могу зайти в систему под root, под пользователем apt-get update - отказано в доступе. Все имена, пароли, явки ![]() |
Автор: kapbepucm 20.10.2011, 10:32 |
Попробуйте sudo apt-get update скорее всего, при установке был запрещён вход в систему для root эту тему стоило назвать кросскомпиляция в Debian ![]() |
Автор: OlegIT 20.10.2011, 12:41 |
Мне не долго и переставить систему. Как только правильно её установить, без запретов и что б man-ы все были? Да, это кросскомпиляция. Во всех описаниях говорится, что это разрешено. Или по умолчанию нет? |
Автор: kapbepucm 20.10.2011, 13:05 |
Переустанавливать не стоит, в запрете нет ничего плохого, это сделано для вашего блага. Вы всегда сможете выполнить команду с правами root через sudo. Делать это вообще надо будет редко (install/update). Насчет кросскомниляции посмотрите в google такой запрос 'crosscompiling gcc arm on debian '. Я так понимаю простой установкой нужных пакетов не отделаться. |
Автор: OlegIT 26.10.2011, 09:03 |
Ещё проблема обнаружилась, не поставился gdb, при запуске gdb a.out пишет нет такой команды. Файл a.out есть и запускается, простая программа вывода на экран текста "OK". Компилятор поставил, а для дебагера особое приглашение нужно? Может gdb это отдельный пакет? |
Автор: kapbepucm 1.11.2011, 09:37 |
sudo aptitude install gdb |
Автор: OlegIT 1.11.2011, 13:33 |
Я сам что-то раскопал. Инета на компьютере с Debian у меня нет. Скачал исходники gdb, запустил конфигурацию, запустил make. Получил ……………………… checking for iconv... yes checking for iconv declaration... install-shextern size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); checking for library containing waddstr... no configure: WARNING: no enhanced curses library found; disabling TUI checking for library containing tgetent... no configure: error: no termcap library found make[1]: *** [configure-gdb] Ошибка 1 make[1]: Leaving directory `/home/az/GDB/gdb-7.3' make: *** [all] Ошибка 2 Нашёл termcap, сконфигурил, создал библиотеку libtermcap.a. Но как сделать, что бы компилятор при создании gdb «видел» эту библиотеку не знаю. С сайта Debian скачал gdbserver_7.0.1-2+b1_i386.deb (181 кБ). Что с ним делать? |
Автор: kapbepucm 1.11.2011, 17:06 |
sudo dpkg -i твой_файлик.deb Добавлено через 6 минут и 8 секунд а в debian не принято же из исходников ставить, всё ставит менеджер пакетов из бинарников |
Автор: OlegIT 7.11.2011, 08:49 |
Как я понимаю для такой установки нужен интернет, а на том ноутбуке, где я работаю под Linux его нет и не будет. Где можно взять бинарник отладчика? |
Автор: kapbepucm 10.11.2011, 17:51 |
качаем http://packages.debian.org/squeeze/gdb файлик *.deb, переносим на ноутбук и там выпоняем коману которую я описывал выше. Возможно на вашей системе не будет хватать зависимых пакетов, тогда dpkg выругается и вам придётся таким образом выкачивать все недостающие пакеты, но рано или поздно gdb установится ![]() У меня подозрение, что на установочном DVD1 все самые популярные пакеты, включая gdb, должны быть. Если после установки /etc/apt/sources.list не правили, то вставте DVD и sudo aptitude install gdb |
Автор: OlegIT 15.11.2011, 14:48 |
Поставил первый диск от debian. Выполнил команду, получил ответ <user>@oleg-it:~$ sudo dpkg -i gdbserver_7.0.1-2+b1_i386.deb [sudo] password for <user>: Выбор ранее не выбранного пакета gdbserver. (Чтение базы данных ... на данный момент установлен 130081 файл и каталог.) Распаковывается пакет gdbserver (из файла gdbserver_7.0.1-2+b1_i386.deb)... Настраивается пакет gdbserver (7.0.1-2+b1) ... Обрабатываются триггеры для man-db ... <user>@oleg-it:~$ gdb bash: gdb: команда не найдена <user>@oleg-it:~$ Почему опять gdb нет? Если на этом диске нет gdb, то система как-нибудь ругнулась? |
Автор: kapbepucm 16.11.2011, 12:43 |
Вы установили gdbserver, установите gdb http://packages.debian.org/squeeze/gdb http://packages.debian.org/squeeze/gdbserver |
Автор: OlegIT 16.11.2011, 12:58 |
Спасибо. На приведённых Вами страничках даны зависимости, которые обозначены красными квадратами. Как я понимаю их сначало установить нужно? |
Автор: kapbepucm 16.11.2011, 13:50 |
да, красные кружочки, это пакеты без которых текущий пакет работать не будет. Но, возможно, они у вас уже установлены. Устанавливайте gdb, а если чего не будет хватать, dpkg выругается. dpkg не ставит пакет, если зависимые пакеты отсутствуют. |
Автор: OlegIT 17.11.2011, 11:09 |
Поставил gdb, работает. Спасибо. Если что, ещё обращусь. |