![](/img/trans.png)
[英]Templatd lambda calling templated lambda (C++20) doesn't work with clang 12 / 13
[英]Missing C++20 headers on Ubuntu 20.04 with Clang 13
我已經安裝了 clang-13,但是當我嘗試編譯一個使用 C++20 標頭的程序時,我遇到了 header 錯誤。
#include <numeric>
#include <numbers> // missing
似乎 CMake 使用系統標頭(來自 ubuntu 附帶的舊 GCC 標頭)。 我如何說服它改用 Clang 的標頭?
數字 header 是 C++20 的一部分https://en.cppreference.com/w/cpp/header/numbers
安裝最新版本的 g++ 為我解決了這個問題。 例如,g++-11 是目前最新的版本。 在 Ubuntu 上安裝它:
添加工具鏈 ppa 以確保最新版本可用:
sudo add-apt-repository --update -y ppa:ubuntu-toolchain-r/test
sudo apt-get update -y
然后安裝
sudo apt-get -y --fix-broken install gcc-11 g++-11
您可以在這里查看最新版本: https://launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/test
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.