2010-05-31 74 views
0

我已经写了一个小程序,了解期货如何在C++ 0x中工作。当运行代码时,我得到一个错误,如“错误:'printEn'未在此范围内声明”。我无法理解有什么问题is..Kindly指出什么在这里,我做错了,如果可能的话写在同一正确的代码..C++中的期货问题0x

#include <future> 
#include <iostream> 

using namespace std; 


int printFn() 
{ 
    for(int i = 0; i < 100; i++) 
    { 

     cout << "thread " << i << endl; 
    } 

    return 1; 
} 



int main() 
{ 

    future<int> the_answer2=async(printEn); 
    future<int> the_answer1=async(printEn); 


    return 0; 
} 

编辑:

作出更改后printFn运行程序时,我收到错误消息“找不到版本GLIBCXX_3.4.14”(由./a.out需要)“。这是什么意思?

+0

关于GLIBCXX评论,版本控制的常见用法是在每个新的共享库版本中引入一些新的符号,如“GLIBCXX_3.4.14”。通常这些版本符号是预先保存的,直到某种向后兼容性丢失。这个想法是,图书馆的用户可以有一个相应的未解决的符号,在链接时连线。通过这种方式,库的用户不需要运送库,只要依赖于链接到其他(可能更新)的库,只要它具有这个符号即可。 C++运行时是我见过的最常见的地方。 – tgoodhart 2011-06-18 20:59:14

回答

5

错误的函数名称printEn < - >printFn

+0

啊!谢谢..这就是我所能说的.. – 2010-05-31 02:38:42

+0

欢迎您! '没有在这个范围内声明'意味着检查命名空间,包括,函数/变量的名称 – Phong 2010-05-31 02:41:53

+0

现在,当运行它时,我得到一个错误信息“version'GLIBCXX_3.4.14'not found(required by ./a.out)”This虽然编译好! – 2010-05-31 02:44:36