0

Ubuntuでg++(GCC)4.7.2を使用しています。「u8」文字列リテラルプレフィックスをコンパイルする方法を理解しようとしています。このバージョンのgccには「組み込み」だと思いました。

#include <iostream>
#include <string>
int 
main ()
{
  std::string example1 = u8"Abcd";
  std::cout << "Hello, world!\n";
  return 0;
}

$ g ++ -Wall -B / usr / lib / x86_64-linux-gnu / helloworld.cpp -o hello helloworld.cpp:関数'int main()':helloworld.cpp:12:26:エラー:'u8'このスコープでは宣言されていませんhelloworld.cpp:12:28:エラー:予期される'、'、または';' 文字列定数の前helloworld.cpp:12:15:警告:未使用の変数'example1' [-Wunused-variable]

「-B」オプションを使用するのは、crt1.oとcrti.oが存在する場所だからです。

4

1 に答える 1

3

これはc++11の機能なので-std=c++0x、コマンドラインに追加します。これはg++4.6.3で機能し、4.7.2-std=c++11でも機能する可能性があります

于 2012-12-06T18:09:10.033 に答える