2013-11-11 4 views
1

Я создал простую программу, чтобы узнать, как использовать потоки. Это код, который я создалПростая программа Thread C++

#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 

Я уже включен -std = C++ 11 в C++ Compiler дополнительные параметры командной строки в опции проекта Дев C++, но я не могу все еще удалять ошибки. Можете ли вы проверить, что я делаю неправильно? также, насколько это возможно, я не хочу использовать другие библиотеки, так как мне трудно их строить (например, boost)

+0

Какой компилятор (. Включая версии) является Dev C++ с использованием? – JBentley

+0

Я думаю, что это один TDM-GCC 4.7.1 32/64bit – John

+0

Я пометил ваш вопрос 'Windows', как заявил вам компилятор. – JBentley

ответ

1

Проблема, скорее всего, из-за отсутствия поддержки для C++ 11's std::thread в сборке из GCC 4.7.1, включенного в TDM-GCC. Посмотрите на this question, для деталей. Ваш код компилируется нормально с GCC 4.8.1 (хотя до сих пор ошибки во время выполнения):

http://ideone.com/oUhvi3

Поэтому я хотел бы предложить, что решить вашу проблему, вы пытаетесь обновить до более новой версии компилятора. Согласно this link и this link, это должно быть простым вопросом: установить последнюю версию компилятора в папку, в которой он находится в настоящее время, или, альтернативно, установить ее в новой папке и обновить настройки в Dev C++, чтобы указать на новую компилятор.

Однако, поскольку вы новичок в C++ (и вообще в программировании) и поэтому не имеете конкретного приложения к Dev C++, я бы рекомендовал вместо этого переключиться на более современную и широко используемую среду IDE. MS Visual Studio - хорошая ставка для Windows, но для C++ доступно множество открытых и кросс-платформенных IDE. Использование популярной среды IDE рекомендуется для новичков, так как вы гораздо чаще находите источники помощи и поддержки в Интернете и чаще получаете ответы на таких сайтах, как Stackoverflow, когда вы застреваете. Есть много вопросов о Stackoverflow, связанных с IDE. Примеры (от быстрого поиска Google):

What is the good cross platform C++ IDE?

Best C++ IDE or Editor for Windows

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

Смежные вопросы