Keith Thompson said:
"BartC" <
[email protected]> writes:
[Clang for Windows]
Yes, that's an odd convention. It has some historical basis, but
nothing that's particularly applicable today. (I think that in early
UNIX history, the compiler and assembler were invoked separately;
"a.out" meant "assembler output".) And a Windows compiler should at
least generate an executable with a ".exe" suffix. (I think gcc on
Cygwin generates "a.exe".)
Something odder (assuming clang is written in C, or C++), is that all text
output seems to have LF line-endings instead of the CR,LF endings you might
expect in this version specially built for Windows. I thought C was immune
to these problems, as the local runtime system did the conversions needed?
Or has the wrong library been linked in? It's a nuisance anyway.
Another funny thing was Clang not liking lines such as:
#include "/a/b/c.h"
unless they were written as #include "C:/a/b/c.h". Although that might just
be the compiler doing something strange with the current drive setting
(which the other 4 compilers didn't!). (The fact that, immediately after and
within the same IDE session, the normal fine gcc compiler seemed to be
afflicted with the same problem, points towards that.)
(As for performance: for all its size, on my project it generated 30-40%
slower code than gcc, with the same -O3 setting. Although probably still
faster than any non-gcc compiler I've used.)