Журнал изменений для выпуска 3.12.2 Ядра перечисляет все изменения (новые возможности, фиксирует, …) данного выпуска.
Существует стандартная схема именования GNU для компиляторов и других частей инструментальной цепочки:
<target triplet>-<tool name>
<machine>-<vendor>-<operatingsystem>
И имя инструмента - gcc
для компилятора или другое имя инструмента, например ld
или strip
или ar
и т. Д. .
Компилятор по умолчанию, тот, который компилирует собственные двоичные файлы (не кросс-компилятор), просто называется gcc
без триплета.
Тройка компилятора, которая находится внутри файла, о котором вы упомянули в своем вопросе, - это arm-none-linux-gnueabi
(я знаю, что она выглядит как четверка, но это так). Чтобы использовать его, просто вызовите arm-none-linux-gnueabi-gcc
вместо простого gcc
.
Если вы создаете что-то, что использует Makefile
, вы часто можете получить этот Makefile
для использования нужного компилятора, запустив CC = arm-none-linux- gnueabi-gcc make
вместо обычного make
. Если вы создаете что-то, что использует сценарий GNU configure
, вы также можете указать целевой триплет для этого .
Больше, чем кросс-компилятор, вам понадобится набор инструментов , поскольку есть больше шагов, связанных с процессом получения исполняемого файла из исходного кода. Эти шаги:
Стандарт именования в инструментальных средствах GNU - <цель> - <инструмент>
, например arm-oe-linux-gnueabi-gcc
будет компилятором для архитектуры ARM, вариант Open Embedded Linux, а arm-oe -linux-gnueabi-as
- ассемблер той же инструментальной цепочки и так далее.
Однако это еще не все, что вам нужно получить от исходного кода на хосте до исполняемого файла на целевой машине, вам также понадобятся заголовки и библиотеки с целевой машины на вашем хост-компьютере для компоновщика. Вот почему у вас возникла ошибка сборки: «Не удается прочитать символы. Файл в неправильном формате». Конечно, если у вас есть заголовки, системный root и все, что скопировано на ваш хост-компьютер, вам нужно установить соответствующие переменные кросс-компилятор, чтобы найти нужные, а не оригинал с вашего хост-компьютера.
Вообще говоря, пакеты с исходным кодом содержат Makefile, подготовленный для приема конкретного компилятора. Судя по предыдущим комментариям, я понял, что вы решили это с помощью переменной CC =. Как только вы все настроите, просто измените CC для вашего Makefile и вызовите make
.
Короче говоря, вам нужно создать собственную цепочку инструментов для целевой машины на хост-машине или получить уже созданную.
Удачи и удачи!
Хост - это машина, на которой выполняется кросс-компиляция. Ваша машина для разработки.
Целевой - это машина ARM926EJ-S.
Пара моментов, на которые следует обратить внимание:
ARM926EJ-S - это ARMv5, поэтому убедитесь, что ваша цепочка кросс-инструментов компилируется для правильной версии процессора arm.
Каталог установки, указанный в файле make:
INSTALL = /usr/bin/install -c
Я думаю, что это установит на вашу хост-машину (машину разработки), а не то, что вы хотите.
Если вы компилируете программу для встраиваемого устройства, вам нужно создать каталог 'workingInstall' для установки bluez. Затем добавьте его в файловую систему вашего встроенного устройства. (nand, sd-карта).