我被告知clang是一个像gcc一样工作的驱动程序,可以进行预处理,编译和链接工作.在编译和链接期间,据我所知,它实际上是llvm进行优化("-O1", "-O2", "-O3", "-Os", "-flto").
但我无法理解llvm是如何参与的.
似乎编译源代码甚至不需要静态库libLLVMCore.a,相反,对于debian clang包依赖于另一个名为libllvm-3.4(clang version is 3.4)的包,其中包含libLLVM-3.4.so(.1),clang是否使用此共享库进行优化?
我已经检查了一段时间的clang源代码并发现其中include/clang/Driver/Options.td包含相关选项,但遗憾的是我找不到包含该文件的源文件,因此我仍然不了解该机制.
我希望有人可以给我一些提示.