1

これはここ数日私の心を曲げていました。また、これをaskubuntuに投稿するのかここに投稿するのかわかりませんでした。私はここで、より幅広いプログラマーベースのオーディエンスを獲得することを選択しました。

私はUbuntuとGCCを初めて使用しますが、WindowsでC++をプログラミングしてから約5年になります。この単純なC++11コードサンプルは、VS2010を搭載したWindowsマシンで正常に機能します。

#include <iostream>
#include <functional>

std::function<void()> func;

int main() {
    std::cout << "!!!Hello World!!!" << std::endl; // prints !!!Hello World!!!
    return 0;
}

Eclipse CDT(Ubuntu 12.04)では、エラーが発生しますSymbol 'function' could not be resolved

build-essentialsインストールされていることを確認しました。

/usr/include/c++/4.6.3Eclipseのインクルードに追加しました。

__GXX_EXPERIMENTAL_CXX0X__Eclipseのパスとシンボルに追加しました。

コマンドラインで-std=c++11を試しました。

コマンドラインで-std=c++0xを試しました。

私はここで受け入れられた答えに従いました:https ://askubuntu.com/questions/113291/how-do-i-install-gcc-4-7そしてインストールされたgcc 4.7

これはgccでサポートされていませんか?

確認autoしましたが、動作しunique_ptrますが、上記と同じエラーで動作しません。

申し訳ありませんが、私はLinuxを初めて使用します。

編集: nmの要求に従って:

neil@ubuntu12:~/projects/Test/Test$ g++ -v;g++ -std=c++0x -o main main.cpp
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/lib/gcc/i686-linux-gnu/4.6/lto-wrapper
Target: i686-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 4.6.3-1ubuntu5' --with-bugurl=file:///usr/share/doc/gcc-4.6/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.6 --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.6 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --enable-plugin --enable-objc-gc --enable-targets=all --disable-werror --with-arch-32=i686 --with-tune=generic --enable-checking=release --build=i686-linux-gnu --host=i686-linux-gnu --target=i686-linux-gnu
Thread model: posix
gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) 
neil@ubuntu12:~/projects/test$
4

1 に答える 1

2

これはgccでサポートされていませんか?

std::functionGCCはそれをうまくサポートしています。構文の強調表示とオートコンプリートがGCCのコンパイラエラーで認識できなかったというEclipseのエラーを混乱させています。それらは同じものではありません。

__GXX_EXPERIMENTAL_CXX0X__Eclipseのパスとシンボルに追加しました。

これは、EclipseCDTにC++ 11名を認識させる方法を示しています:http ://wiki.eclipse.org/CDT/User/FAQ#CDT_does_not_recognize_C.2B.2B11_features

于 2012-08-12T19:25:35.060 に答える