Я пытаюсь скомпилировать какое-то программное обеспечение, которое я пишу для Linux, которое использует некоторые необычные новые функции C ++ 0x на моем Mac.Я использовал MacPorts для установки пакета gcc45, который дал мне /opt/local/bin/g++-mp-4.5, однако этот компилятор не хочет ничего компилировать в <thread>
.Например, я пытаюсь скомпилировать:
//test.cpp
#include <thread>
int main()
{
std::thread x;
return 0;
}
и получить:
bash-3.2$ /opt/local/bin/g++-mp-4.5 -std=c++0x test.cpp
test.cpp: In function 'int main()':
test.cpp:5:2: error: 'thread' is not a member of 'std'
test.cpp:5:14: error: expected ';' before 'x'
Быстрый просмотр в / opt / local / include / gcc45 / c ++ / thread показывает, что std :: threadкласс определен, но защищен следующим:
#if defined(_GLIBCXX_HAS_GTHREADS) && defined(_GLIBCXX_USE_C99_STDINT_TR1)
Опять же, это прекрасно работает на моей машине с Ubuntu, так что как правильно включить библиотеку c ++ 0x <thread>
в версии MacPortsg ++ 4.5 (g ++ - mp-4.5)?Если это не так, нужно ли мне что-то знать (настраивать флаги и т. Д.), Прежде чем сам приступить к компиляции gcc 4.5?
Обновление: Не похоже, что сообщество SO знает об этоммного об этом, так что, возможно, пришло время немного приблизиться к разработчикам.Кто-нибудь знает официальный список рассылки, на который я мог бы переслать этот вопрос?Есть ли какие-нибудь советы по этикету, которые помогут мне получить ответ?
Обновление 2: Я попросил у SO другое временное решение здесь , и поэтому я просто заменяюбиблиотеки boost :: thread для стандартных.К сожалению, нет повышения :: будущего, так что это еще не совсем полное решение.Любая помощь будет с благодарностью.