簡體   English   中英

如何在ubuntu linux上重裝gcc和g++

[英]How to reinstall gcc and g++ on ubuntu linux

我認為我的 gcc 和 g++ 安裝可能有問題,因為下面的代碼無法在我的計算機上運行。

#include <iostream>
#include <numbers>

int main()
{
    long double pi {0};
    long double pi2 {0};

    pi  = std::numbers::pi_v<long double>;
    pi2 = std::numbers::pi_v<long double>;

    std::cout << pi << std::endl << pi2;

}

如何在 gcc 和 g++ 上進行完全重新安裝? 另外,我如何確保 CodeBlocks 正在使用這個重新安裝的版本。

編輯:運行 g++ 版本 11.1.0 並使用 -std=c++20 這是出現的錯誤消息:

g++ randomCodeWhileReading.cpp -o -std=c++20
randomCodeWhileReading.cpp: In function ‘int main()’:
randomCodeWhileReading.cpp:9:16: error: ‘std::numbers’ has not been declared
    9 |     pi  = std::numbers::pi_v<long double>;
      |                ^~~~~~~
randomCodeWhileReading.cpp:9:30: error: expected primary-expression before ‘long’
    9 |     pi  = std::numbers::pi_v<long double>;
      |                              ^~~~
randomCodeWhileReading.cpp:10:16: error: ‘std::numbers’ has not been declared
   10 |     pi2 = std::numbers::pi_v<long double>;
      |                ^~~~~~~
randomCodeWhileReading.cpp:10:30: error: expected primary-expression before ‘long’
   10 |     pi2 = std::numbers::pi_v<long double>;
      |                              ^~~~

請:在發布問題時始終復制/粘貼錯誤消息!

我懷疑這是你得到的編譯錯誤:

x.cpp:2:10: fatal error: numbers: No such file or directory
 #include <numbers>

header 僅在 C++20 之后可用: https://en.cppreference.com/w/cpp/numeric

問:你們有兼容 C++20 的 G+ 版本嗎? 您可以使用g++ --version來確定這一點

問:你是為 C++ 20 編譯(例如-std=c++20 )嗎?

這是 C++ 20 兼容性的 Gnu C++ 文檔:

https://gcc.gnu.org/projects/cxx-status.html

C++20 Support in GCC GCC 對C++標准的最新修訂版有實驗性支持,2020年發布。

C++20 功能自 GCC 8 起可用。要啟用 C++20 支持,請將命令行參數 -std=c++20(在 GCC 9 及更早版本中使用 -std=c++2a)添加到您的 g++命令行。 或者,要啟用除 C++20 功能之外的 GNU 擴展,請添加 -std=gnu++20。

重要提示:因為 ISO C++20 標准是最新的,所以 GCC 的支持是實驗性的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM