首頁 >後端開發 >C++ >為什麼 g (MinGW) 報告「在 std 中找不到 to_string」以及如何修復它?

為什麼 g (MinGW) 報告「在 std 中找不到 to_string」以及如何修復它?

Patricia Arquette
Patricia Arquette原創
2024-12-23 18:13:17724瀏覽

Why Does g   (MinGW) Report

在std 中找不到to_string,說g (Mingw)

問題陳述

何時編譯使用std::to_string() 和g 的C 程式(MinGW 4.7.0),編譯器會產生錯誤,指出「to_string 不是std 的成員。」

原因

這是MinGW 之前版本中的已知錯誤到GCC 4.8.0,特別是C 0x標準

解決方案

此問題主要有兩種解決方案:

1.應用修補程式

訪問Bugzilla 上提供的錯誤報告(提供的答案中的連結)並下載補丁以更新MinGW。安裝補丁並重新編譯程式。

2.使用更新的 MinGW 發行版

使用支援 4.8.0 以上 GCC 版本的 MinGW 發行版。已知以下發行版已解決此問題:

  • MinGW-w64(高於4.8.0 的版本)
  • Nuwen MinGW

安裝更新了MinGW 發行版並再次編譯您的程式。

其他註解

  • to_string() 函數是 C 11 標準的一部分,由 g 中的 -std=c 0x 標誌啟用。
  • 之前的 MinGW 版本4.8.0 對 C 11 功能的支援不完整。
  • 對於 4.8.0 以下的 MinGW 版本,您可能需要使用另一種方​​法將長整數轉換為字串,例如 sprintf()、strftime() 或 boost::lexical_cast。

以上是為什麼 g (MinGW) 報告「在 std 中找不到 to_string」以及如何修復它?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn