clang-4.0
, упомянутый как часть установки, должен поддерживать флаг -std=c++11
(только что протестированный clang-4.0.1).Тем не менее, обновление до clang-6.0
, похоже, решает эту ошибку процесса сборки.
Запуск cmake
непосредственно в автоматически создаваемом каталоге сборки (с помощью сценариев сборки swift) может использоваться для более подробного изучения сбоя сборки.,Чтобы указать здесь компиляторы, вместо установки переменных среды CC
и CXX
(что хорошо работает для скриптов настройки GNU), для компиляторов можно установить значение cmake
через
cmake -DCMAKE_C_COMPILER=/usr/bin/clang -DCMAKE_CXX_COMPILER=/usr/bin/clang++ path_to_src_or_build_directory
Существующий CMakeCache.txt
возможно, придется удалить, чтобы вышеупомянутые параметры были соблюдены.
Проблема с clang++
установками, которые я наблюдал, заключается в том, что clang++
не может найти C++ headers
(то есть, если заголовки C++
находятся внестандартные локации, отличные от /usr/include
, хотя вряд ли в случае с Ubuntu).Если /usr/bin/clang++
не может скомпилировать простую программу, такую как
#include <iostream>
using namespace std;
int main() {
cout << "hello" << endl;
return 0;
}
, которая не может найти включаемый файл iostream
, это может помочь установить --gcc-toolchain=/pathtoaworkinggcc
, где pathtoaworkinggcc
должно включать include
, lib
, bin
и т. Д. Работающего компилятора C++
(возможно, g++
в случае установки Ubuntu).