Я компилировал clang, чтобы использовать его как кросс-компилятор для ARM (путем настройки его с помощью ./configure --target=armv7l-unknown-linux-gnueabihf
), но когда я пытаюсь скомпилировать любой код C, он пытается использовать /usr/bin/as
. У меня уже есть binutils, скомпилированные для ARM, и они находятся в отдельном каталоге. Как мне настроить clang (или llvm) для использования ассемблера, который я указываю?
Как использовать пользовательский ассемблер для clang?
Ответ 1
попробуйте передать опцию -host для настройки, которая приведет к префиксу всех cc ar и т.д. с помощью armv7l-unknown-linux-gnueabihf- например:
./configure --host=armv7l-unknown-linux-gnueabihf --build=i686-unknown-linux-gnu
Поскольку вы используете configure, мы надеемся, что autotools рассмотрят: automake Cross compiling
Ответ 2
У меня всегда возникала проблема с настройкой из исходного каталога с использованием. /configure и в конце концов. В эти дни я всегда настраиваюсь из отдельного каталога, то есть... //configure, хотя мне говорят, что рекомендуется использовать абсолютный путь для configure.
Ваш ARM binutils должен быть установлен в том же префиксе, который вы используете для clang, и убедитесь, что он находится в пути при настройке и создании clang - например, PATH =/some/prefix/bin: $PATH;/configure --target = armv7l-unknown-linux-gnueabihf. Если вы храните их в отдельных каталогах для целей упаковки, тогда установите установку DESTDIR =, чтобы помочь.
Я вообще не строю clang, но скрипты, которые я использую для devkitARM, могут быть полезны - http://sourceforge.net/p/devkitpro/buildscripts/ci/c372699fc7b4de90eb044314ce5bed04db640291/tree/