cmake жалуется на отсутствие поддержки C++0x компилятора, несмотря на то, что установлена последняя версия clang
Я пытаюсь использовать cmake для сборки pdf2htmlEX
Это сообщение об ошибке:
CMake Error at CMakeLists.txt:108 (message):
Error: your compiler does not support C++0x, please update it
Вот номер версии компилятора clang
$ which clang
/usr/bin/clang
$ which c++
/usr/bin/c++
$ clang --version
Ubuntu clang version 3.5-1ubuntu1 (trunk) (based on LLVM 3.5)
Target: x86_64-pc-linux-gnu
Thread model: posix
$ c++ --version
Ubuntu clang version 3.5-1ubuntu1 (trunk) (based on LLVM 3.5)
Target: x86_64-pc-linux-gnu
Thread model: posix
После быстрого теста я понял clang
не поддерживается -std=c++0x
, Я удалил Clang и установил G ++. Вот соответствующая информация о версии:
$ which g++
/usr/bin/g++
$ which c++
/usr/bin/c++
$ g++ --version
g++ (Ubuntu 4.8.2-19ubuntu1) 4.8.2
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
$ $ c++ --version
c++ (Ubuntu 4.8.2-19ubuntu1) 4.8.2
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Я запустил очень простой тест, и, кажется, g++ может принять c++0x
параметр
g++ -std=c++0x /tmp/c/t.cpp
Я бегу cmake на Ubuntu 14.04.1 LTS
CMake
Его версия cmake version 2.8.12.2
Вот соответствующий код в CMakeLists.txt
include(CheckCXXCompilerFlag)
check_cxx_compiler_flag("${CMAKE_CXX_FLAGS}" CXX0X_SUPPORT)
if(NOT CXX0X_SUPPORT)
message(FATAL_ERROR "Error: your compiler does not support C++0x, please update it.")
endif()
Я новичок в cmake, поэтому не знаю, как определить, какая проверка выполняется для check_cxx_compiler_flag
от cmake
1 ответ
Оказывается, это проблема с кэшированием cmake.
Когда я запустил cmake в первый раз, он поднял clang++
который не поддерживает -std=c++0x
вариант. Последующий запуск cmake продолжает сообщать о том же кэшированном результате, даже если clang был удален и исправлен g++
установлено.
Вот решение:
Перед повторным запуском cmake удалите папку CMakeFiles
и файл CMakeCache.txt