On 7/23/2011 1:24 PM, Martin Gregorie wrote:
> On Sat, 23 Jul 2011 11:19:19 -0400, Arne Vajhøj wrote:
>
>> On 7/23/2011 9:19 AM, Martin Gregorie wrote:
>
>>> The last C compilers I remember that had separate preprocessors were
>>> K&R, so were very old. In these, cc was effectively a shell that
>>> invoked the preprocessor, the C --> assembler translator, the
>>> assembler and the linker in turn. Actually, I'm still using one - the
>>> standard OS/9 v2.4 C compiler, which dates from 1992 and runs on 68xxx
>>> hardware.
>>>
>>> I don't remember any ANSI C compilers I've used being structured this
>>> way: certainly I've not seen any version of the GNU compiler or its
>>> derivatives that aren't a monolithic chunk that includes all
>>> compilation stages except the linker. AFAICR this also applied to the
>>> Borland compilers.
>>>
>>> So, if that's really what you want, go and find a old K&R compiler or
>>> its source.
>>
>> GCC still has a separate executable for preprocessing!
>>
>> The driver gcc or g++ calls cpp, cc1 or cc1plus, as and ld.
>>
> Fair cop, guv.
>
> I looked at /usr/bin, thought the preprocessor was called cpre so didn't
> find it and glanced through 'man gcc' but didn't find anything describing
> the compiler structure. The fact that the options are subdivided onto
> compilation stages doesn't necessarily say anything about the compiler
> physical structure, and as gcc is fairly big, I assumed....
It is cpp (or gcc-cpp).
Not a very good name - most would assume that cpp=c plus plus.
But then most people would call it via the general compiler driver, so
it does not matter much.
Arne
|