реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> ARM-Кросскомпиляция., хочу уточнить.
jacuba
сообщение May 19 2011, 05:22
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 26
Регистрация: 25-03-11
Из: Пермь
Пользователь №: 63 861



Добрый день,
и так, "Кросскомпиляция", я хочу окончательно разобраться с этим вопросом.

Предположим, что у меня есть некая машина с ARM-архитектурой и есть основная машина с i386 архитектурой. Мне хочется собрать некоторую программу на машине с i386 для машины с ARM.

для этого я собираю и устанавливаю arm-компилятор.
затем я беру исходник программы hello.c:
Код
#include <stdio.h>

int main(){
        printf("Hello world!");
        return 0;
}

и в командной строке пишу:
Код
~ # arm-linux-gcc hello.c -o hello

На выходе я получаю файл hello, его я кидаю на машину с ARM, запускаю и вижу надпись "Hello world!". Из этого делаю вывод, что кросскомпилятор у меня работает нормально.

Теперь, я хочу скомпилировать уже не просто программу, где на выходе будет один бинарник, а хочу скомпилировать программу побольше, где есть еще разные сторонние файлы. Для этого захожу в папку:
Код
~ # ls -1
build_tools
ChangeLog
dahdi-linux-2.4.1.2-summary.html
dahdi-linux-2.4.1.2-summary.txt
doc
drivers
include
LICENSE
LICENSE.LGPL
Makefile
README
UPGRADE.txt


Как мне скомпилировать эту программу, ведь здесь нет фала "<name>.c". Прошу разъяснить, уважаемые.

Спасибо и с уважением.
Дмитрий.

Сообщение отредактировал jacuba - May 19 2011, 05:45
Go to the top of the page
 
+Quote Post
klen
сообщение May 19 2011, 06:04
Сообщение #2


бессмертным стать можно тремя способами
*****

Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912



в списке файлов имеется Makefile - это особый файл который содержит информацию ЧТО и КАК ДЕЛАТЬ с ПРОЕКТОМ (ну например собрать бинарь, и и любое другое действие) под управлением утилиты GNU make. в этом файле, оформленом по определенным правилам описаны цепочки действий, в нем ВЫ можете указать все что надо делать. Если он уже есть то скорее всего кто то кто этот проект сделал туда все уже написал, Вам нада в него залесть и изучить.

первое что Вы можете сделать это из дериктории проекта где лежит Makefile вызвать утилиту make, она автоматом его считает и выполнит первую цель указанную в этом файле (обычно это сборка проекта)

нулевое и наиважнейшее - изучите неоткладывая документацию на GNU make
http://www.gnu.org/software/make/manual/make.html
если не знаете английски то можно тут http://www.opennet.ru/docs/RUS/make_compile
но лучше всетаки оригинал читать - то кто переводит иногда сам не в курсе про что речь.
Go to the top of the page
 
+Quote Post
_Pasha
сообщение May 19 2011, 06:19
Сообщение #3


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(klen @ May 19 2011, 09:04) *
нулевое и наиважнейшее - изучите неоткладывая документацию на GNU make

тут - под вынь генератор мэйков с кнопочками sm.gif
Я понимаю, что фу итд, но тоже помощь - почитать что почем сгенерилось.

Сообщение отредактировал _Pasha - May 19 2011, 06:20
Go to the top of the page
 
+Quote Post
mdmitry
сообщение May 19 2011, 10:13
Сообщение #4


Начинающий профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 25-10-06
Из: СПб
Пользователь №: 21 648



Цитата(jacuba @ May 19 2011, 09:22) *
Код
~ # ls -1
build_tools
ChangeLog
dahdi-linux-2.4.1.2-summary.html
dahdi-linux-2.4.1.2-summary.txt
doc
drivers
include
LICENSE
LICENSE.LGPL
Makefile
README
UPGRADE.txt


У Вас уже есть Makefile в каталоге и Readme! Если в Makefile указано все правильно для работы с кросс-средствами (пути, имена программ и т.д.), то все просто:
Код
make

make считает Makefile и выполнит необходимые действия (в большинстве случаев).
А совет от klen очень нужный для будущей работы, стоит им воспользоваться.


--------------------
Наука изощряет ум; ученье вострит память. Козьма Прутков
Go to the top of the page
 
+Quote Post
RISCovyj
сообщение May 24 2011, 14:13
Сообщение #5





Группа: Новичок
Сообщений: 9
Регистрация: 6-02-09
Пользователь №: 44 491



Можете прислать сам Makefile?
Go to the top of the page
 
+Quote Post
mdmitry
сообщение May 24 2011, 14:36
Сообщение #6


Начинающий профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 25-10-06
Из: СПб
Пользователь №: 21 648



Цитата(RISCovyj @ May 24 2011, 18:13) *
Можете прислать сам Makefile?

А какой? У меня их много rolleyes.gif
Если серьезно, то вопрос не корректный. Что собирать собрались, какой компилятор и т.д.?


--------------------
Наука изощряет ум; ученье вострит память. Козьма Прутков
Go to the top of the page
 
+Quote Post
RISCovyj
сообщение May 27 2011, 13:37
Сообщение #7





Группа: Новичок
Сообщений: 9
Регистрация: 6-02-09
Пользователь №: 44 491



Цитата(mdmitry @ May 24 2011, 17:36) *
А какой? У меня их много rolleyes.gif
Если серьезно, то вопрос не корректный. Что собирать собрались, какой компилятор и т.д.?


Я имел ввиду Makefile автора этой темы :-)
Go to the top of the page
 
+Quote Post
mdmitry
сообщение May 27 2011, 15:18
Сообщение #8


Начинающий профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 25-10-06
Из: СПб
Пользователь №: 21 648



Цитата(RISCovyj @ May 27 2011, 17:37) *
Я имел ввиду Makefile автора этой темы :-)

Он, судя по файлам, хотел собрать что-то отсюда. В архивах должны быть соответствующие файлы.


--------------------
Наука изощряет ум; ученье вострит память. Козьма Прутков
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 17:45
Рейтинг@Mail.ru


Страница сгенерированна за 0.01425 секунд с 7
ELECTRONIX ©2004-2016