2015-10-13 3 views
-1

Есть ли способ доступа к файлу thread.h.Неустранимая ошибка: thread.h: Нет такого файла или каталога

Я не могу найти thread.h заголовок в окнах, поскольку потоки связаны с ОС.

Я попытался использовать pthread.h внешнюю библиотеку, но так и не смог найти thread.h, который, по словам моего профессора, работает в солярии.

+3

«thread.h» - это просто имя файла. Вам нужно будет рассказать нам, какую библиотеку вы на самом деле пытаетесь найти ... Кроме того, пометьте только тот язык, который вы на самом деле используете. Например, если вы используете C++, просто включите '' и сделайте с ним; нет необходимости в каких-либо сторонних шантажах. –

+2

Вы ищете '' или ''? – EOF

+0

файл threads.h отсутствует в библиотеке cygwin, если быть точным –

ответ

4

Это отличный пример, где тегирование вопроса с помощью «С» и «С ++» очень сбивает с толку, потому что ответы совершенно разные.

Если вы кодирования в 11 C++ или более поздней версии, то вы должны

#include <thread> 

и использовать std::thread класс. Вам будет хорошо.

Если вы кодируете C11, вам придется подождать, пока ваша реализация не поддержит его. § 7.26.1 ¶ 2 стандарта C11 говорит:

Implementations that define the macro __STDC_NO_THREADS__ need not provide this header nor support any of its facilities.

Вы можете проверить с #ifdef ли определяет это ваша реализация. По крайней мере, мой GCC.

В настоящее время, если вы не можете переключиться на C++, используйте стороннюю библиотеку потоков, такую ​​как pthreads.

+0

«* Пока что, если вы не можете переключиться на C++, используйте стороннюю библиотеку потоков, например pthreads. *« Это потому, что это ОС не POSIX? В таком случае не следует ли добавлять тег, связанный с операционной системой? –

+0

@EOF Скомпилирован ли с помощью '-std = c11'? Во всяком случае, дело в том, что заголовок еще не получил широкого распространения. – 5gon12eder

+0

@iharob Если вы знаете один, не стесняйтесь редактировать мой вопрос. Я не знаю Windows. – 5gon12eder

0

thread.h не определен в контексте стандартов C++. Если у вас есть 11 совместимый набор инструментов C++, вам нужно

#include <thread> 

, как указано в reference documentation.

Предварительно стандартные инструментальные цепочки, вероятно, должны иметь стандарт, указанный явно с использованием флагов компилятора -std=c++0x или -std=c++11.


Как вы изменили свое внимание на , включая C++ заголовки не будут работать. Вы можете попробовать pthread.h.

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