我正在运行Ubuntu 14.04。
我复制的步骤:
TestStdThread
#include <thread>
#include <iostream>
int main() {
std::cout << "You have " << std::thread::hardware_concurrency() << " cores." << std::endl;
return 0;
}
g++
更改为g++ -std=c++11
/usr/include
添加到包含路径(-I),并将pthread.h
添加到包含文件(-include) pthread
添加到库(-l),然后将/usr/lib/x86_64-linux-gnu
添加到库搜索路径(-L) 没有构建错误。 Eclipse告诉我该项目有错误,并询问我是否仍然要运行它,当我说"is"时,输出正确是:
You have 4 cores.
。但是,Eclipse仍然在红色的std::thread::hardware_concurrency
部分下划线,并在悬停时报告为“无法解析功能'hardware_concurrency'”,并且在键入std::thread
Ctrl + Space时std::
没有显示。这是我用来查找
pthread
文件位于/usr
中的位置的bash命令(省略了/usr/share
,因为它包含许多我不需要的doc文件):llama@llama-Satellite-E55-A:/usr$ find -name "*pthread*" -not -path "./share/*"
./include/pthread.h
./include/x86_64-linux-gnu/bits/pthreadtypes.h
./lib/x86_64-linux-gnu/pkgconfig/pthread-stubs.pc
./lib/x86_64-linux-gnu/libpthread.so
./lib/x86_64-linux-gnu/libpthread_nonshared.a
./lib/x86_64-linux-gnu/libgpgme-pthread.so.11.11.0
./lib/x86_64-linux-gnu/libgpgme-pthread.so.11
./lib/x86_64-linux-gnu/libpthread.a
./lib/perl/5.18.2/bits/pthreadtypes.ph
./lib/debug/lib/x86_64-linux-gnu/libpthread-2.19.so
最佳答案
转到Project
-> Properties
-> C/C++ General
-> Preprocessor include paths, etc
-> Providers
-> CDT GCC Builtin Compiler Settings
,然后将-std=c++11
附加到编译器规范中。
您还可以对要转到Window
-> Preferences
-> C/C++
-> Build
-> Settings
-> Discovery
的所有项目执行此操作,并将-std=c++11
附加到CDT GCC Builtin Compiler Settings
规范中。
确保以后重新索引您的项目。
这些说明适用于Eclipse Luna(4.4.0),对于以前的版本,路径相似。