Quelqu'un peut-il me dire comment compiler le compilateur Clang en LtVM bytecode (c'est-à-dire, auto-hôte Clang)? La raison pour laquelle je veux faire ceci est que je peux prendre le bytecode LLVM résultant et ensuite utiliser Emscripten pour produire un compilateur C vers Javascript.Comment auto-héberger Clang?
Répondre
Vous pouvez obtenir clang à la sortie dans le bytecode LLVM en utilisant l'indicateur de ligne de commande -emit-llvm
, avec l'indicateur -c
. (Si vous utilisez l'indicateur -S
au lieu de -c
, vous obtenez une représentation textuelle du bytecode LLVM.) Vous n'avez pas besoin de compiler clang dans le bytecode LLVM pour que cela fonctionne.
Si vous souhaitez essayer de s'exécuter dans un navigateur, vous devrez compiler tout le clang dans le code à barres LLVM, puis lier les fichiers objet à l'aide de llvm-link
. Ensuite, vous aurez besoin de comprendre comment donner au compilateur compilé l'accès aux fichiers d'en-tête système dont il a besoin. Je ne sais pas s'il y a une option de construction pour tout cela, mais je n'ai jamais rien vu dans les options ./configure
pour cela, donc je ne pense pas. Mais il est possible que cela existe.
Il ya un fil similaire à http://stackoverflow.com/questions/12479458/how-to-build-clang-with-clang, mais je suis un débutant à clanger et à compiler en général, donc je n'ai aucune idée de comment adopter à compiler clang à LLVM. Pensez-vous que vous pourriez m'aider à modifier légèrement ce code pour le compiler en LLVM? – user3059347
Comme je l'ai dit dans la réponse, ce n'est pas un processus trivial. Je n'ai pas mentionné que si vous vouliez faire tout cela dans le navigateur, vous auriez aussi besoin de construire lui-même des emscripten, et que le résultat serait probablement impraticable. Êtes-vous certain de devoir le faire? – rici
- 1. Clang complet pour VIM
- 2. Déboguer avec Clang
- 3. problème de lien clang
- 4. Comment faire un clang propre front-end?
- 5. Comment gérer l'erreur "Clang LLVM 1.0"?
- 6. Comment configurer Clang utiliser MinGW libstdC++
- 7. comment trouver le dossier Clang sur OSX?
- 8. clang ++ et u16string
- 9. erreur Clang: Symbole double
- 10. Recommandée Niveau d'optimisation clang?
- 11. Clang documentation utilisateur
- 12. liste d'initialisation dans Clang
- 13. Bloc Clang sous Linux?
- 14. Sortie inattendue de Clang
- 15. Comment alimenter le plugin Visual Studio Clang-Format avec un fichier au format clang?
- 16. Comment fonctionne uint24_t de clang? Puis-je l'utiliser en dehors de clang/LLVM?
- 17. Installation clang sur Linux Mint
- 18. clang complete ne fonctionne pas
- 19. Activation des désinfectants sur clang
- 20. Clang et CMake sur Windows
- 21. Installation de Clang/LLVM/Ubuntu
- 22. Annotation de méthode clang personnalisée
- 23. Localisation de la sortie clang
- 24. Analyseur statique Clang sous Windows
- 25. erreur clang arrive à l'exécution
- 26. Impossible d'installer Clang sur Archlinux
- 27. clang c11 threads.h pas trouvé
- 28. Xcode 4 trop clang traite
- 29. Activer clang pour le projet
- 30. XCode 4.2 erreur seg clang
Utilisez -flt puis récupérez les modules IR résultants dans un grand module unique. –