2015-01-16 23 views
1

我正在使用此代碼處理舊的g ++編譯器。我從this得到這個答案。錯誤:'get_nprocs'未在此範圍內聲明

unsigned thread::hardware_concurrency() 
{ 
#if defined(PTW32_VERSION) || defined(__hpux) 
    return pthread_num_processors_np(); 
#elif defined(__APPLE__) || defined(__FreeBSD__) 
    int count; 
    size_t size=sizeof(count); 
    return sysctlbyname("hw.ncpu",&count,&size,NULL,0)?0:count; 
#elif defined(BOOST_HAS_UNISTD_H) && defined(_SC_NPROCESSORS_ONLN) 
    int const count=sysconf(_SC_NPROCESSORS_ONLN); 
    return (count>0)?count:0; 
#elif defined(_GNU_SOURCE) 
    return get_nprocs(); 
#else 
    return 0; 
#endif 
} 

以下是錯誤:

Hardware_con.h:31:25: error: ‘get_nprocs’ was not declared in this scope 
     return get_nprocs(); 
         ^

所以,問題是這頭文件,我應該包括哪些內容?

+1

是否包含相應的頭? – Mat

+0

不@ @Mat,這就是我想要找到的相應標題,但是我不能。 – gsamaras

+0

sys/sysinfo.h可能是一個! – gsamaras

回答

2

我們應該包括相應的頭文件

#include <sys/sysinfo.h>