22

to_string(NUMBER)この機能を Ubuntu コンピューターで数週間動作させようとしていますが、QT 環境や他の場所では動作しません。私のコードは Mac osx で完全に動作しますが、Ubuntu で実行しようとするとto_string、スコープ内で宣言されていないと文句を言います。これに対する解決策は大歓迎です。gcc コンパイラを更新しようとしましたが、問題は解決しませんでした。助けてください。

QT Creator 4.8.1 を使用しており、C++ と最新バージョンの Ubuntu を使用しています。

int Bint::operator*(int temp){
    Bint b(to_string(temp));
    return ((*this)*b);
}

pro ファイルに QMAKE_CXXFLAGS += -std=c++0x がありませんでした。

4

6 に答える 6

28

うまくいかない理由はさまざまです。名前を で修飾する必要があるstd::か、C++11 をサポートしていない可能性があります。

C++11 をサポートしていれば、これは機能します。

#include <string>

int main()
{
  std::string s = std::to_string(42);
}

g++ または clang で C++11 サポートを有効にするには、オプションを渡す必要があります-std=c++0x-std=c++11これらのコンパイラの新しいバージョンでも使用できます。

于 2013-03-22T11:28:45.037 に答える
12

C++11 サポートでファイルをコンパイルする必要があります

g++ -std=c++0x  -o test example.cpp
于 2015-08-18T01:24:48.037 に答える
3

Application.mkの最初の行を次のように変更して、この問題を修正しました。

APP_STL := gnustl_static

APP_STL := c++_static
于 2015-09-29T17:14:07.533 に答える