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.cc
skompilować program. Spowoduje to utworzenie domyślnego pliku wykonywalnego o nazwie a.out
. Służy ./a.out
do 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 -Wall
opcji. Ta strona pokazuje listę flag diagnostycznych obsługiwanych przez Clang.
Ponadto, dla potomności - Clang (podobnie jak GCC) akceptuje -x
przełą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 clang
i 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-arg
do 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ć .cpp
pliki, .ll
pliki (LLVM IR) oraz .o
, .a
, .so
a 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