J'ai compilé clang pour l'utiliser comme compilateur croisé pour ARM (en le configurant avec ./configure --target=armv7l-unknown-linux-gnueabihf
), mais lorsque j'essaie de compiler un code C, il essaie d'utiliser /usr/bin/as
. J'ai déjà compilé binutils pour ARM, et ils sont dans un répertoire séparé. Comment puis-je demander à clang (ou llvm) d'utiliser l'assembleur que je spécifie ?
Réponses
Trop de publicités?Essayez de passer l'option --host à configure qui fera que tous les utilitaires cc ar etc. préfixeront avec armv7l-unknown-linux-gnueabihf-. par exemple :
./configure --host=armv7l-unknown-linux-gnueabihf --build=i686-unknown-linux-gnu
Puisque vous utilisez configure avec, espérons-le, autotools, jetez un coup d'œil à : automake Compilation croisée
J'ai toujours eu des difficultés à configurer à partir du répertoire source en utilisant ./configure et j'ai fini par abandonner. Aujourd'hui, je configure toujours à partir d'un répertoire séparé, c'est-à-dire ..//configure, bien qu'on m'ait dit qu'il était recommandé d'utiliser un chemin absolu pour configurer.
Vos binutils ARM doivent être installés dans le même préfixe que celui que vous utilisez pour clang et assurez-vous qu'ils sont dans le chemin lorsque vous configurez et construisez clang - c'est-à-dire PATH=/some/prefix/bin:$PATH ; /configure --target=armv7l-unknown-linux-gnueabihf. Si vous les gardez dans des répertoires séparés pour des raisons de packaging, alors make install DESTDIR= devrait vous aider.
Je ne construis généralement pas clang, mais les scripts de construction que j'utilise pour devkitARM peuvent être utiles. http://sourceforge.net/p/devkitpro/buildscripts/ci/c372699fc7b4de90eb044314ce5bed04db640291/tree/