Компилятор C ++ не поддерживает C ++ 11 (например, std :: unique_ptr). здание OpenWRT - PullRequest
1 голос
/ 20 апреля 2019

Я использую инструкции здесь и здесь для сборки OpenWRT в Ubuntu, но получаю:

make[4]: Entering directory '~/openwrt/build_dir/host/cmake-3.11.1/Bootstrap.cmk'
make[4]: 'cmake' is up to date.
make[4]: Leaving directory '~/openwrt/build_dir/host/cmake-3.11.1/Bootstrap.cmk'
loading initial cache file ~/openwrt/build_dir/host/cmake-3.11.1/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!

Было найдено решение аналогичной проблемы здесь , однако мне не ясно, какой файл CMakeLists.txt является «корневым» в моем случае.На форумах OpenWRT (или вообще в поисковых системах в целом) об этом не говорится особо.

У меня сложилось впечатление, что установка CMake загружается самим сборщиком OpenWRT, поскольку у меня не установлена ​​и не устанавливается CMake.cmake ничего не решил.

Попробовал проверить последнюю версию OpenWRT v18.06.2.Когда это не удалось собрать, я удалил клонированный каталог и попробовал v18.06.0-rc2.Улучшения не было.

Также пробовал

export CMAKE_CXX_STANDARD = 11

перед запуском 'make' ... проблема не решена.

Состояние моей установки g ++:

$ g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 7.3.0-27ubuntu1~18.04' --with-bugurl=file:///usr/share/doc/gcc-7/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-7 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 7.3.0 (Ubuntu 7.3.0-27ubuntu1~18.04)

Что ж, вот уже 5 часов у меня нет идей.Может ли это быть неправильной конфигурацией или ошибкой на стороне разработчика?

Если неправильная конфигурация, что может быть неправильно настроено?

1 Ответ

0 голосов
/ 04 июля 2019

Мой плохой опыт может помочь другим. У меня gcc 7.4.0. На той же машине у меня не было проблем с настройкой пакета. Однажды я решил построить оптимизированную версию

export CXXFLAGS=O3

configure
... many lines ignored
checking whether g++ supports C++11 features by default... no
checking whether g++ supports C++11 features with -std=c++11... no
checking whether g++ supports C++11 features with +std=c++11... no
checking whether g++ supports C++11 features with -h std=c++11... no
checking whether g++ supports C++11 features with -std=c++0x... no
checking whether g++ supports C++11 features with +std=c++0x... no
checking whether g++ supports C++11 features with -h std=c++0x... no
configure: error: *** A compiler with support for C++11 language features is required.

Примечание: после экспорта CXXFLAGS = "- O3" моя проблема исчезла. Опечатка пропускает черту. Надеюсь, что это может помочь многим другим. Большинство трудностей вызвано тонкой ошибкой, которую мы совершили.

...