66 votes

Que fait l'option clang -cc1 ?

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é ?

67voto

wpunkt Points 2169

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.

17voto

Anton Korobeynikov Points 4299

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.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