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 ++?
97
Polecenie clang
jest przeznaczone dla C, a polecenie clang++
dla C ++.
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ładTen wątek na liście mailingowej wyjaśnia różnicę między
clang
iclang++
dobrze: Różnica między clang i clang ++źródło
#include <iostream>
. Flaga -lstdc ++ rozwiązała ten problem.clang.exe
, a następnie kopiuje ten plik wykonywalny doclang++.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 Cclang++
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>
iclang++ -v <filename.cpp>
pod hasłem „#include <...> wyszukiwanie zaczyna się tutaj:”.źródło
rozwiązanie 1:
rozwiązanie 2:
rozwiązanie 3:
źródło
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 ++:
Aby skompilować wiele plików C ++ przy użyciu g ++:
źródło