Doo*_*nob 8 c++ eclipse ubuntu eclipse-cdt stdthread
我正在运行Ubuntu 14.04.
我重现的步骤:
创建一个新的C++项目(New - > C++ - > Hello World项目),我调用了它 TestStdThread
将主文件中的代码更改为:
#include <thread>
#include <iostream>
int main() {
std::cout << "You have " << std::thread::hardware_concurrency() << " cores." << std::endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)转到TestStdThread - >属性 - > C/C++构建 - >设置 - > GCC C++编译器,并将命令选项从更改g++为g++ -std=c++11
转到TestStdThread - >属性- > C/C++编译- >设置- > GCC C++编译器- >包括添加/usr/include到包含路径(-I) ,并添加pthread.h到包含文件(-include)
转到TestStdThread - > Properties - > C/C++ Build - > Settings - > GCC C++ Linker - > Libraries,添加pthread到Libraries(-l),并添加/usr/lib/x86_64-linux-gnu到Library搜索路径(-L)
TestStdThread - > Build Project
点击"运行"
没有构建错误.Eclipse告诉我,该项目有错误并且询问我是否想要运行它,当我说是的时,输出是正确的:You have 4 cores..但是,Eclipse仍然std::thread::hardware_concurrency用红色突出显示该部分,并将其报告(在悬停时),因为"函数'hardware_concurrency'无法解析",并且std::thread在键入std:: Ctrl+ 时没有显示Space.
这是我用来查找pthread文件所在位置的bash命令/usr(/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
Run Code Online (Sandbox Code Playgroud)
cod*_*ion 10
转到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),对于以前的版本,路径类似.
| 归档时间: |
|
| 查看次数: |
7776 次 |
| 最近记录: |