2012-10-15 17 views
9

Próbowałem użyć -dumpversion, aby określić, czy kompilator jest użyteczny. Mój projekt kompiluje się z clang i nowszymi gccs, ale nie ze starym gcc 4.2.1.Dlaczego raport clang-dumpversion 4.2.1

Dlaczego więc clang udaje stary gcc?

Dodatkowe pytania, czy można zmienić tę wartość w czasie wykonywania?

Czy ktoś ma ładne makro autoconf do określenia wersji kompilatora z clang i gcc? za zgodną z gcc 4.2.1

+3

Jaką cechę nowszego kompilatora potrzebujesz? Sprawdź to, nie dla którego kompilatora jest używany. –

Odpowiedz

6

Clang został pierwotnie napisany. Nie było some discussion o aktualizacji tej liczby na początku tego roku, ale były problemy.

Aby sprawdzić automatyczne sprawdzanie, clang sugeruje użycie jego __has_feature extension. Dokument Clanga ma także numer list of things you can check with __has_feature.

+1

Czy __has_feature jest również obsługiwane przez gcc? – arved

+0

Nie sądzę. – thakis

+0

__has_feature byłby świetny, gdyby zachowali również listę atrybutów __has_bug(). W większości przypadków, gdy muszę zmienić moje pliki Makefile, to dlatego, że muszę robić obejścia błędów specyficznych dla niektórych kompilatorów. – jstine

Powiązane problemy