1. Проблема
После обновления cmake для использования c++20 с set(CMAKE_CXX_STANDARD 20) при компиляции базы данных зависимостей появляются следующие ошибки
[ 11%] Built target glfw
[ 15%] Built target raylib
[ 16%] Built target fmt
[ 16%] Building CXX object _deps/leveldb-build/CMakeFiles/leveldb.dir/util/env_posix.cc.o
/home/natan/Projects/raylib-tutorial-2/03-classy_clash/build/_deps/leveldb-src/util/env_posix.cc: In constructor ‘leveldb::{anonymous}::SingletonEnv::SingletonEnv()’:
/home/natan/Projects/raylib-tutorial-2/03-classy_clash/build/_deps/leveldb-src/util/env_posix.cc:840:53: error: ‘memory_order_relaxed’ is not a member of ‘std::memory_order’
840 | env_initialized_.store(true, std::memory_order::memory_order_relaxed);
| ^~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/13/cassert:44,
from /home/natan/Projects/raylib-tutorial-2/03-classy_clash/build/_deps/leveldb-src/./util/posix_logger.h:13,
from /home/natan/Projects/raylib-tutorial-2/03-classy_clash/build/_deps/leveldb-src/util/env_posix.cc:36:
/home/natan/Projects/raylib-tutorial-2/03-classy_clash/build/_deps/leveldb-src/util/env_posix.cc: In static member function ‘static void leveldb::{anonymous}::SingletonEnv::AssertEnvNotInitialized()’:
/home/natan/Projects/raylib-tutorial-2/03-classy_clash/build/_deps/leveldb-src/util/env_posix.cc:857:54: error: ‘memory_order_relaxed’ is not a member of ‘std::memory_order’
857 | assert(!env_initialized_.load(std::memory_order::memory_order_relaxed));
| ^~~~~~~~~~~~~~~~~~~~
gmake[2]: *** [_deps/leveldb-build/CMakeFiles/leveldb.dir/build.make:580: _deps/leveldb-build/CMakeFiles/leveldb.dir/util/env_posix.cc.o] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:425: _deps/leveldb-build/CMakeFiles/leveldb.dir/all] Error 2
gmake: *** [Makefile:156: all] Error 2
C++17 работает нормально.
Что я могу сделать, чтобы исправить ошибку сборки с помощью C++20?
Должен ли я создать форк leveldb только для того, чтобы это исправить?
2. Как размножить
2.1. Клонируйте репозиторий:
git clone -b leveldb-c++20 https://github.com/thr0wn/cpp-fundamentals-with-raylib
2.2. Перейдите к 03-classy_clash
cd 03-classy_clash
2.3. Попробуйте собрать:
cmake -DCXX=g++ -S . -B ./build && cmake --build build
Подробнее здесь: https://stackoverflow.com/questions/798 ... -stdmemory
Leveldb, cmake и C++20 («memory_order_relaxed» не является членом «std::memory_order») [закрыто] ⇐ C++
Программы на C++. Форум разработчиков
1768761381
Anonymous
1. Проблема
После обновления cmake для использования c++20 с set(CMAKE_CXX_STANDARD 20) при компиляции базы данных зависимостей появляются следующие ошибки
[ 11%] Built target glfw
[ 15%] Built target raylib
[ 16%] Built target fmt
[ 16%] Building CXX object _deps/leveldb-build/CMakeFiles/leveldb.dir/util/env_posix.cc.o
/home/natan/Projects/raylib-tutorial-2/03-classy_clash/build/_deps/leveldb-src/util/env_posix.cc: In constructor ‘leveldb::{anonymous}::SingletonEnv::SingletonEnv()’:
/home/natan/Projects/raylib-tutorial-2/03-classy_clash/build/_deps/leveldb-src/util/env_posix.cc:840:53: error: ‘memory_order_relaxed’ is not a member of ‘std::memory_order’
840 | env_initialized_.store(true, std::memory_order::memory_order_relaxed);
| ^~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/13/cassert:44,
from /home/natan/Projects/raylib-tutorial-2/03-classy_clash/build/_deps/leveldb-src/./util/posix_logger.h:13,
from /home/natan/Projects/raylib-tutorial-2/03-classy_clash/build/_deps/leveldb-src/util/env_posix.cc:36:
/home/natan/Projects/raylib-tutorial-2/03-classy_clash/build/_deps/leveldb-src/util/env_posix.cc: In static member function ‘static void leveldb::{anonymous}::SingletonEnv::AssertEnvNotInitialized()’:
/home/natan/Projects/raylib-tutorial-2/03-classy_clash/build/_deps/leveldb-src/util/env_posix.cc:857:54: error: ‘memory_order_relaxed’ is not a member of ‘std::memory_order’
857 | assert(!env_initialized_.load(std::memory_order::memory_order_relaxed));
| ^~~~~~~~~~~~~~~~~~~~
gmake[2]: *** [_deps/leveldb-build/CMakeFiles/leveldb.dir/build.make:580: _deps/leveldb-build/CMakeFiles/leveldb.dir/util/env_posix.cc.o] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:425: _deps/leveldb-build/CMakeFiles/leveldb.dir/all] Error 2
gmake: *** [Makefile:156: all] Error 2
C++17 работает нормально.
Что я могу сделать, чтобы исправить ошибку сборки с помощью C++20?
Должен ли я создать форк leveldb только для того, чтобы это исправить?
2. Как размножить
2.1. Клонируйте репозиторий:
git clone -b leveldb-c++20 https://github.com/thr0wn/cpp-fundamentals-with-raylib
2.2. Перейдите к 03-classy_clash
cd 03-classy_clash
2.3. Попробуйте собрать:
cmake -DCXX=g++ -S . -B ./build && cmake --build build
Подробнее здесь: [url]https://stackoverflow.com/questions/79870333/leveldb-cmake-and-c20-memory-order-relaxed-is-not-a-member-of-stdmemory[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия