Je suis un nouveau venu dans clang
. J'ai lu un article sur la transformation de source à source de cuda
a opencl
en utilisant clang
front-end du compilateur.
Quelqu'un peut-il me dire pourquoi l'option -cc1
est parfois utilisé ?
Je suis un nouveau venu dans clang
. J'ai lu un article sur la transformation de source à source de cuda
a opencl
en utilisant clang
front-end du compilateur.
Quelqu'un peut-il me dire pourquoi l'option -cc1
est parfois utilisé ?
Le frontal du compilateur Clang possède plusieurs fonctionnalités supplémentaires spécifiques à Clang qui ne sont pas exposées par l'interface du pilote de compatibilité GCC. Le site -cc1
indique que le front-end du compilateur doit être utilisé, et non le pilote. L'option clang -cc1
met en œuvre la fonctionnalité de base du compilateur.
Donc, pour parler simplement. Si vous ne donnez pas -cc1
alors vous pouvez vous attendre au "look&feel" de GCC standard. C'est-à-dire que la grande majorité des drapeaux de compilation fonctionnent exactement comme vous vous attendez à ce qu'ils fonctionnent avec GCC. Si vous passez l'option "-cc1", vous obtiendrez le drapeau du compilateur Clang. Ainsi, il peut y avoir des différences avec GCC.
J'espère que c'est un peu plus clair.
Le compilateur habituel se compose de ce que l'on appelle le pilote du compilateur, qui sait comment exécuter le compilateur lui-même, l'assembleur, l'éditeur de liens, etc. et le compilateur lui-même qui prend simplement le code source (parfois déjà prétraité) et émet du code assembleur/objet.
Clang implémente tous ces composants dans un seul binaire, la différence est juste la ligne cmd. Ici clang -cc1
invoque le compilateur lui-même avec son ensemble d'options internes/non documentées, etc.
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.