簡體   English   中英

Dev C ++簡單線程程序

[英]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正常編譯(盡管它仍然存在運行時錯誤):

http://ideone.com/oUhvi3

因此,我建議您為解決問題而嘗試更新到較新版本的編譯器。 根據此鏈接此鏈接的執行很簡單,只需將最新版本的編譯器安裝到當前所在的文件夾中,或者將其安裝在新文件夾中,然后在Dev C ++中更新設置以指向新的編譯器。

但是,由於您是C ++(和一般編程)的新手,因此對Dev C ++沒有特別的興趣,所以我建議您改用更現代和更廣泛使用的IDE。 MS Visual Studio是Windows的不錯選擇,但是有很多可用於C ++的開源和跨平台IDE。 建議初學者使用流行的IDE,因為當您遇到困難時,您更有可能在網上找到幫助和支持的來源,並且更有可能在Stackoverflow等網站上找到答案。 有大量與IDE有關的Stackoverflow問題。 示例(來自Google的快速搜索):

什么是好的跨平台C ++ IDE?

適用於Windows的最佳C ++ IDE或編輯器

https://stackoverflow.com/questions/535369/what-is-the-best-free-windows-c-ide-compiler

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM