J'ai compilé clang pour l'utiliser comme un compilateur croisé pour ARM (en le configurant avec ./configure --target=armv7l-unknown-linux-gnueabihf
), mais quand j'essaye de compiler n'importe quel 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 diriger clang (ou llvm) pour utiliser l'assembleur que je spécifie?Comment utiliser l'assembleur personnalisé pour clang?
Répondre
J'ai toujours eu des problèmes pour configurer à partir du répertoire source en utilisant ./configure et j'ai abandonné à la fin. Ces jours-ci, je configure toujours à partir d'un répertoire distinct, c'est-à-dire ..//configure bien que l'on me dise qu'il est recommandé d'utiliser un chemin absolu pour configurer. Vos binutils ARM doivent être installés dans le même préfixe que vous utilisez pour clang et assurez-vous qu'ils sont dans le chemin lorsque vous configurez & build clang - c'est-à-dire PATH =/some/prefix/bin: $ PATH;/configure --target = armv7l-inconnu-linux-gnueabihf. Si vous les gardez dans des répertoires séparés à des fins d'emballage, faites l'installation suivante: DESTDIR = help.
Je ne construis généralement pas clang mais les scripts de constructions que j'utilise pour devkitARM pourrait être utile - http://sourceforge.net/p/devkitpro/buildscripts/ci/c372699fc7b4de90eb044314ce5bed04db640291/tree/
Désolé, mais je n'ai jamais configuré clang dans le même répertoire que le répertoire source avant. La commande que j'ai incluse dans ma question a omis le drapeau '--prefix' pour la brièveté. Comme vous pouvez le voir dans les commentaires de CarlNorum, j'ai remarqué son inclusion du drapeau '--prefix', et cela n'a toujours pas fonctionné pour moi. La chose étrange est que le processus de compilation semble en effet créer le binaire assembleur intégré dans le dossier 'bin' (avec le triple cible correct), mais il ne l'utilise jamais. Je vais certainement jeter un oeil au script de construction que vous avez inclus dans votre réponse. – JosephH
Essayez de passer l'option --host pour configurer ce qui entraînera tous les utilitaires cc ar etc à préfixe armv7l- unknown-linux-gnueabihf- par exemple:
./configure --host=armv7l-unknown-linux-gnueabihf --build=i686-unknown-linux-gnu
Puisque vous utilisez configurer avec autotools, espérons jeter un oeil à: automake Cross compiling
Je pense que vous avez mal compris la question. @JosephH vous demande comment croiser les programmes de compilation en utilisant clang, mais votre réponse se rapporte à "comment croiser compile clang lui-même". –
- 1. Comment utiliser clang :: TreeTransform?
- 2. Utiliser Clang pour obtenir AST
- 3. Comment utiliser Clang CompilerInstance pour l'achèvement?
- 4. Comment utiliser boost_threads avec clang?
- 5. Comment utiliser .pch avec clang?
- 6. comment utiliser llvm + clang pour compiler pour stm32
- 7. Comment utiliser Clang comme un préprocesseur
- 8. Comment configurer Clang utiliser MinGW libstdC++
- 9. Comment utiliser boost asio avec clang/c2
- 10. Comment utiliser gcc au lieu de clang
- 11. Comment utiliser clang-format de macports?
- 12. Constructions de déplacement supplémentaires sur l'allocateur personnalisé pour clang
- 13. Clang: Comment passer plusieurs arguments pour clang plug-in
- 14. llvm clang 2.6: «ne pas utiliser le compilateur clang pour les entrées C++»
- 15. Comment utiliser un adaptateur personnalisé pour AutoCompleteTextView
- 16. Comment utiliser keystore personnalisé pour Calabash-android?
- 17. Comment utiliser Gitproxy pour SSH personnalisé
- 18. Clang complet pour VIM
- 19. Comment auto-héberger Clang?
- 20. Utiliser clang-cl.exe pour faire une compilation croisée?
- 21. Quelle macro prédéfinie puis-je utiliser pour détecter clang?
- 22. LLVM/Clang utiliser opt pour afficher le fichier ll lié
- 23. Comment utiliser TextBox personnalisé
- 24. Comment utiliser JMXAuthenticator personnalisé
- 25. Comment utiliser listView personnalisé?
- 26. clang semble utiliser les bibliothèques gcc
- 27. Utiliser AliasAnalysis interproceduraly en clang 3.3.1
- 28. utiliser StucturedTextEditor pour personnalisé IEditorInput
- 29. Comment utiliser personnalisé UINavigationBar
- 30. comment utiliser personnalisé ImageView
Je sais que je l'ai fait récemment ly - laissez-moi voir si j'ai des fichiers de configuration autour. Pour ARM ne devrait-il pas utiliser le générateur de code machine au lieu d'essayer d'exécuter un assembleur de toute façon? Avez-vous essayé de passer '--integrated-as'? Pouvez-vous montrer un exemple de ligne de commande et de sortie en utilisant '-v'? –
Ma ligne de configuration, bien qu'elle ne ressemble pas à beaucoup d'aide: '../llvm/configure - target = mipsel-sde-elf --prefix =/un/prefix --enable-optimized'. Cela a bien fonctionné et a couru '/ some/prefix/mipsel-sde-elf-as'. Cela dit, j'utilise normalement l'assembleur intégré, donc je n'ai pas testé depuis un moment. –
@CarlNorum J'ai aussi l'assembleur intégré ('armv7l-inconnu-linux-gnueabihf-llvm-as') dans le même dossier que clang, mais il utilise toujours'/usr/bin/as'. Je ne sais pas si 'armv7l-unknown-linux-gnueabihf-llvm-as' appelle en interne'/usr/bin/as'. – JosephH