Joh*_*ith 2 c++ lambda xcode4.2 c++11
我想在我的Mac上编译C++ 11功能.到目前为止,我尝试过两种不同的东西.首先,最新的Xcode(4.2)声称支持"C++ 11特性",但是当我尝试编译它时:
#include <iostream>
int main()
{
using namespace std;
int n = [] (int x, int y) { return x + y; }(5, 4);
cout << n << endl;
}
Run Code Online (Sandbox Code Playgroud)
我得到第一个括号([)的错误,"预期表达式".我猜测lambda表达式不包含在新的C++ 11功能中?
然后,作为一个解决方法,我从http://hpc.sourceforge.net/下载了gcc 4.6二进制文件,但是当我使用gcc-4.6时(/usr/local/bin/gcc-4.6 -std = c ++ 0x test.cpp)我得到:
Undefined symbols for architecture x86_64:
"std::cout", referenced from:
_main in cctnMUFF.o
...
Run Code Online (Sandbox Code Playgroud)
我认为这是一个没有找到标准库的问题?
谢谢!
XCode 4.2附带一个已推迟的Clang 2.9,由Apple打补丁.它不支持lambda和统一初始化器.Clang 3.0也没有,所以你必须等到至少Clang 3.1(从现在起6个月内到期).
或者,您可以使用Macports的GCC 4.6进行lambda支持.
更新到您的更新:您需要链接g++或-lstdc++手动添加.