c ++ 11 std :: unique_ptr ошибка cmake 3.11.3 начальная загрузка - PullRequest
0 голосов
/ 08 июня 2018

Я пытаюсь загрузить cmake 3.11.3 в Ubuntu 16.04.4 LTS xenial.

Я обновил свой компилятор gnu g ++ следующим образом:

> $ g++ --version
g++ (Ubuntu 8.1.0-5ubuntu1~16.04) 8.1.0 Copyright (C) 2018 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.

И вручную переадресовалсимволические ссылки:

$ ll /usr/bin/*g++*
lrwxrwxrwx 1 root root       5 Jun  8 16:57 /usr/bin/g++ -> g++-8*
-rwxr-xr-x 1 root root  919832 Apr 24 15:02 /usr/bin/g++-5*
lrwxrwxrwx 1 root root      22 Jun  6 04:26 /usr/bin/g++-8 -> x86_64-linux-gnu-g++-8*
lrwxrwxrwx 1 root root      22 Jun  8 16:58 /usr/bin/x86_64-linux-gnu-g++ -> x86_64-linux-gnu-g++-8*
lrwxrwxrwx 1 root root       5 Apr 24 15:02 /usr/bin/x86_64-linux-gnu-g++-5 -> g++-5*
-rwxr-xr-x 1 root root 1071984 Jun  6 04:26 /usr/bin/x86_64-linux-gnu-g++-8*

Однако, я получаю следующую ошибку в конфигурации cmake:

$ sudo ./bootstrap 
---------------------------------------------
CMake 3.11.3, Copyright 2000-2018 Kitware, Inc. and Contributors
Found GNU toolchain
C compiler on this system is: gcc       
C++ compiler on this system is: g++          
Makefile processor on this system is: make
g++ has setenv
g++ has unsetenv
g++ does not have environ in stdlib.h
g++ has stl wstring
g++ has <ext/stdio_filebuf.h>
---------------------------------------------
make: Warning: File 'Makefile' has modification time 2.3 s in the future
make: 'cmake' is up to date.
make: warning:  Clock skew detected.  Your build may be incomplete.
loading initial cache file /mnt/ganymede/user/gpeytavi/srv_admin/software/cmake-3.11.3/Bootstrap.cmk/InitialCacheFlags.cmake
CMake Error at CMakeLists.txt:92 (message):
  The C++ compiler does not support C++11 (e.g.  std::unique_ptr).


-- Configuring incomplete, errors occurred!
See also "/mnt/ganymede/user/gpeytavi/srv_admin/software/cmake-3.11.3/CMakeFiles/CMakeOutput.log".
See also "/mnt/ganymede/user/gpeytavi/srv_admin/software/cmake-3.11.3/CMakeFiles/CMakeError.log".
---------------------------------------------
Error when bootstrapping CMake:
Problem while running initial CMake
---------------------------------------------

Любая идея, почему я получаю c ++ 11 std::unique_ptr не-ошибка совместимости?

1 Ответ

0 голосов
/ 08 июня 2018

На самом деле скрипт ./bootstrap пробует различные стандартные флаги C ++ с компилятором.Поэтому он должен автоматически определять свои возможности.

Пожалуйста, убедитесь, что у вас не установлена ​​переменная окружения CXXFLAGS, и повторите попытку с нуля (полученные сообщения / предупреждения указывают на несколько попыток / ошибок в одном и том же каталоге).).

Вывод при успешном завершении

Как ссылка на мой Ubuntu, вызывающий CMake ./bootstrap выглядит так:

---------------------------------------------
CMake 3.11.20180423, Copyright 2000-2018 Kitware, Inc. and Contributors
Warning: This is an in-source build
Found GNU toolchain
C compiler on this system is: gcc
C++ compiler on this system is: g++  -std=gnu++1y
Makefile processor on this system is: make
g++ has setenv
g++ has unsetenv
g++ does not have environ in stdlib.h
g++ has stl wstring
g++ has <ext/stdio_filebuf.h>
---------------------------------------------

Отладка

Для отладки вашей проблемы вы также можете:

  • Позвонить ./bootstrap --verbose
  • Просмотреть Bootstrap.cmk/cmake_bootstrap.log

Известная проблема

У меня только однажды была проблема с bootstrap при использовании clang компиляторов, когда мне нужно было сделать следующий вызов:

export CXXFLAGS=-Xclang -std=c++1z -Xclang -stdlib=libc++

Alternative

Если вы просто хотите установить последнюю версию, см. Как указать, где CMake установлен в Ubuntu?

...