[英]Dev C++ simple threading program
我創建了一個簡單的程序來學習如何使用線程。 這是我創建的代碼
#include <iostream>
#include <stdlib.h>
#include <thread>
using namespace std;
void count_asc();
void count_desc();
int main() {
thread first(count_asc);
thread second(count_desc);
first.join();
second.join();
system("pause");
return 0;
}
void count_asc(){
int ctr;
for(ctr=1;ctr<=10;ctr++){
cout<<"First thread: "<<ctr<<endl;
}
}
void count_desc(){
int ctr;
for(ctr=10;ctr>=1;ctr--){
cout<<"Second thread: "<<ctr<<endl;
}
}
我正在使用Dev C ++ 5.5.3。 我已經閱讀了有關此問題的其他問題,但是作為編程的新手,我真的無法真正理解高級指令。 編譯此代碼時,將產生以下錯誤
main.cpp: In function 'int main()':
main.cpp:11:2: error: 'thread' was not declared in this scope
main.cpp:11:9: error: expected ';' before 'first'
main.cpp:12:9: error: expected ';' before 'second'
main.cpp:14:2: error: 'first' was not declared in this scope
main.cpp:15:2: error: 'second' was not declared in this scope
我已經在Dev C ++的project選項中的c ++編譯器其他命令行選項中包含-std = c ++ 11,但是我仍然無法消除錯誤。 你能檢查我做錯了嗎? 我也盡可能不希望開始使用其他庫,因為我很難構建它們(例如boost)
該問題很可能是由於在TDM-GCC附帶的GCC 4.7.1的構建中缺少對C ++ 11的std::thread
的支持所致。 看一下這個問題 ,了解更多信息。 您的代碼可以使用GCC 4.8.1正常編譯(盡管它仍然存在運行時錯誤):
因此,我建議您為解決問題而嘗試更新到較新版本的編譯器。 根據此鏈接 , 此鏈接的執行很簡單,只需將最新版本的編譯器安裝到當前所在的文件夾中,或者將其安裝在新文件夾中,然后在Dev C ++中更新設置以指向新的編譯器。
但是,由於您是C ++(和一般編程)的新手,因此對Dev C ++沒有特別的興趣,所以我建議您改用更現代和更廣泛使用的IDE。 MS Visual Studio是Windows的不錯選擇,但是有很多可用於C ++的開源和跨平台IDE。 建議初學者使用流行的IDE,因為當您遇到困難時,您更有可能在網上找到幫助和支持的來源,並且更有可能在Stackoverflow等網站上找到答案。 有大量與IDE有關的Stackoverflow問題。 示例(來自Google的快速搜索):
https://stackoverflow.com/questions/535369/what-is-the-best-free-windows-c-ide-compiler
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.