>source

sys_seconds는 어떻게 얻습니까? Ubuntu 20.04에서/usr/bin/c ++를 사용하여 다음 코드 조각을 컴파일합니다.

RCLCPP_WARN_STREAM(get_logger(), "Time: " << std::chrono::sys_seconds(time_.seconds()));

다음과 같은 오류가 발생합니다. 오류 :‘sys_seconds’는‘std :: chrono’의 구성원이 아닙니다.

C ++ 출력은 다음과 같습니다.

c++ (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0

에 따르면 :https://en.cppreference.com/w/cpp/chrono/system_clock c ++ 20에는 다음에 따라 네임 스페이스 sys_seconds가 있어야합니다.https://en.cppreference.com/w/cpp/compiler_support c ++ 9는 C ++ 20을 지원합니다. 하지만/usr/include/c ++/9/chrono 파일을 확인하면 c ++ 11 버전 만 표시됩니다. 내 CMakeLists.txt에 다음 줄을 설정하여 C ++ 20으로 컴파일하고 있는지 확인합니다.

set(CMAKE_CXX_STANDARD 20)

누락 된 C ++ 20 std lib를 어떻게 얻을 수 있습니까?

  • 답변 # 1

    according to https://en.cppreference.com/w/cpp/compiler_support c++9 supports c++20

    그것은 링크 된 페이지가 말하는 것이 아닙니다. 시스템에서 C ++는 기본적으로 g ++에 연결됩니다. 링크 된 페이지에약간C ++ 20 기능은 GCC 9에서 구현되지만 많은 기능은 그렇지 않습니다.

    How can I get the missing c++20 std lib?

    해당 라이브러리를 구현 한 언어 구현을 설치합니다.

  • 이전 c++ - std - : map 반복기를 옵 셔널의 구조적 바인딩으로 풀 수 있습니까?
  • 다음 php - 해시 된 암호로 암호 확인 시스템을 추가하는 방법은 무엇입니까?