What does the clang -cc1 option do?

孤者浪人 提交于 2019-12-03 02:42:15

问题


I'm a newbie in clang. I have read a paper about source to source transformation from cuda to opencl using clang compiler front end.

Can anyone tell me why the option -cc1 is sometimes used?


回答1:


The Clang compiler front-end has several additional Clang specific features which are not exposed through the GCC compatibility driver interface. The -cc1 argument indicates that the compiler front-end is to be used, and not the driver. The clang -cc1 functionality implements the core compiler functionality.

So, simply speaking. If you do not give -cc1 then you can expect the "look&feel" of standard GCC. That is the vast majority of compiler flags work just like you would expect them to work with GCC. If you pass the option "-cc1" then you get the Clang compiler flag set. Thus, there might be differences to GCC.

Hope that makes it a little clearer.




回答2:


The usual compiler consists of so-called compiler driver, which knows how to execute compiler itself, assembler, linker, etc. and compiler itself which just takes the source code (sometimes already preprocessed) and emit assembler/object code.

Clang implements all these components in the single binary, the difference is just the cmdline. Here clang -cc1 invokes the compiler itself with its internal/undocumented set of options, etc.



来源:https://stackoverflow.com/questions/8991662/what-does-the-clang-cc1-option-do

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!