Zainstalowałem Clang za pomocą apt-get w Ubuntu i mogę z powodzeniem skompilować pliki C przy jego użyciu. Jednak nie mam pojęcia, jak za jego pomocą skompilować C ++. Co muszę zrobić, aby skompilować C ++?
Odpowiedzi:
Nie wiem, dlaczego nie ma odpowiedzi bezpośrednio odnoszącej się do problemu. Jeśli chcesz skompilować program w C ++, najlepiej jest użyć clang++. Na przykład działa dla mnie:
clang++ -Wall -std=c++11 test.cc -o test
Jeśli skompilowany poprawnie, utworzy plik wykonywalny test, który można uruchomić za pomocą ./test.
Lub możesz po prostu clang++ test.ccskompilować program. Spowoduje to utworzenie domyślnego pliku wykonywalnego o nazwie a.out. Służy ./a.outdo uruchamiania pliku.
Cały proces jest bardzo podobny do g ++, jeśli znasz g ++. Zobacz ten post, aby sprawdzić, które ostrzeżenia są zawarte w -Wallopcji. Ta strona pokazuje listę flag diagnostycznych obsługiwanych przez Clang.
Ponadto, dla potomności - Clang (podobnie jak GCC) akceptuje -xprzełącznik do ustawiania języka plików wejściowych, na przykład
$ clang -x c++ some_random_file.txt
Ten wątek na liście mailingowej wyjaśnia różnicę między clangi clang++dobrze: Różnica między clang i clang ++
#include <iostream>. Flaga -lstdc ++ rozwiązała ten problem.
clang.exe, a następnie kopiuje ten plik wykonywalny do clang++.exe. Jest to więc ten sam plik wykonywalny, tylko w czasie wykonywania sprawdza swoją własną nazwę, aby rozróżnić, czy zachowywać się jak kompilator C czy C ++. HTH.
-x c++jest bardzo przydatne do postaci -extra-argdo szczęk-Tidy , aby zmusić go do leczenia .h plik zawierający C ++ zamiast C
clang++i pozwolić mu wykryć, jakie rodzaje plików mu dostarczasz. Kiedy projekt może zawierać .cpppliki, .llpliki (LLVM IR) oraz .o, .a, .soa co nie pliki z bibliotek zewnętrznych, clang -x c++po prostu zwymiotować.
Miałem podobny problem podczas budowania Clanga ze źródeł (ale nie z sudo apt-get install. Może to zależeć od wersji Ubuntu, którą używasz).
Warto sprawdzić, czy clang++można znaleźć poprawne lokalizacje Twoich bibliotek C ++:
Porównaj wyniki wyszukiwania g++ -v <filename.cpp>i clang++ -v <filename.cpp>pod hasłem „#include <...> wyszukiwanie zaczyna się tutaj:”.
Otwórz okno terminala i przejdź do katalogu projektu. Uruchom następujące zestawy poleceń, w zależności od zainstalowanego kompilatora:
Aby skompilować wiele plików C ++ za pomocą clang ++:
$ clang++ *.cpp
$ ./a.out
Aby skompilować wiele plików C ++ przy użyciu g ++:
$ g++ -c *.cpp
$ g++ -o temp.exe *.o
$ ./temp.exe