привет всем, столкнулся с проблемой, она наверняка как то решается впервые столкнулся с таким. Под Windows, Kubuntu, Ubuntu все ок под Astra Linux CE 2.12.46 (Orel) возникла проблема. В репозитарии есть gcc 6.3.0 и clang 10. Я выбрал clang 10 потому как он поддерживает c++ 17, а мне нужен как раз был тип std::variant из этого стандарта C++, использую cmake при компиляции получаю:
На просторах интернета нашел вот такую конструкцию вроде как решающую данную проблему, якобы что clang 10 по умолчанию пользует библиотеку stl из gcc и нужно что бы пользовал свою, не знаю правда это или нет, попробовал:
Но увы проблема не решилась, если кто-нибудь знает как решить эту проблему буду премного благодарен за помощь.
СПАСИБО КОЛЛЕГИ ! )
Код:
[build] [1/1 0% :: 0.001] Re-running CMake...
[build] -- Enabled С++17 standard
[build] CMAKE_CXX_COMPILER_VERSION = 10.0.0
[build] -- Configuring done
[build] -- Generating done
[build] -- Build files have been written to: /home/gor/Документы/projects/toris2corba/build
[build] [5/6 16% :: 0.351] Building CXX object toris2_server/CMakeFiles/toris2_server.dir/storage.cpp.o
[build] FAILED: toris2_server/CMakeFiles/toris2_server.dir/storage.cpp.o
[build] /usr/bin/clang++-10 -DACE_LACKS_AUTO_PTR -DTORIS2_EXTERNAL -I../toris2_server/../include -I../toris2_server/../toris_idl -I/home/gor/libraries/ACE_wrappers -I/home/gor/libraries/ACE_wrappers/TAO -O3 -DNDEBUG -std=gnu++17 -MD -MT toris2_server/CMakeFiles/toris2_server.dir/storage.cpp.o -MF toris2_server/CMakeFiles/toris2_server.dir/storage.cpp.o.d -o toris2_server/CMakeFiles/toris2_server.dir/storage.cpp.o -c ../toris2_server/storage.cpp
[build] In file included from ../toris2_server/storage.cpp:1:
[build] In file included from ../toris2_server/storage.h:3:
[build] In file included from ../toris2_server/storage_types.h:5:
[build] ../toris2_server/../include/tvariant.h:3:10: fatal error: 'variant' file not found
[build] #include <variant>
Код:
# Using libc++ for clang less 11.0.0
if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 11.0.0)
target_compile_options(${PROJECT_NAME} INTERFACE -stdlib=libc++)
add_link_options(-stdlib=libc++)
endif ()
СПАСИБО КОЛЛЕГИ ! )
Последнее редактирование: