31 votes

Comment utiliser l'assembleur personnalisé pour clang ?

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 ?

2voto

Kieran Points 21

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

0voto

WinterMute Points 173

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/

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X