2015-09-14 2 views
1

Я ноб на C++, простите, если это тривиально. Я пытаюсь скомпилировать несколько файлов C++ из файла make. Я продолжаю получать эту ошибку:Проблема с компиляцией на C++ с C++ 11

<i> no member named 'to_time_t' in 
     'std::__1::chrono::steady_clock'; did you mean 
     'std::chrono::system_clock::to_time_t'? 
    time_t tnow = std::chrono::high_resolution_clock::to_time_t(now); 

</i> 

Затем после некоторых исследований я обнаружил, что это потому, что я не использую C++ 11. Я на MAC OS X 10.10.2. Поэтому я установил пиво, а затем установил gcc и g ++ 4.9 с использованием варева. Тем не менее, я по-прежнему получаю ту же ошибку. Какие-либо предложения? Этот код работает на Linux-машине.

Любая помощь будет оценена по достоинству.

+0

Чтобы уточнить, я убедился, что версия 4.9 g ++ используется путем изменения пути и добавления символических ссылок и т. Д. – hadis

+0

Symlinks? Это звучит очень сомнительно! Вы установили режим компиляции C++ 11, добавив флаг компилятора: '-std = C++ 11'? – Galik

+0

Да, у меня это в файле make – hadis

ответ

3

to_time_t является членом system_clock, но не обязательно (обязательно) steady_clock или high_resolution_clock. Вы используете high_resolution_clock, который в вашей системе, исходя из сообщения об ошибке, выглядит как псевдоним steady_clock, а не system_clock. Если код работает на вас на другой платформе, может быть, что на этой платформе high_resolution_clock является псевдонимом для system_clock, но вы не можете полагаться на это всегда так.

Решение состоит в том, чтобы использовать только system_clock, если у вас нет time_t. system_clock должно быть не менее высокого разрешения, как time_t, поэтому использование часов с более высоким разрешением здесь не покупает ничего. Или просто используйте функцию std::time, если вам просто нужно текущее время.

+0

Я не думаю, что это решение для него, потому что я смог запустить это на linux – hadis

+0

@hadis: И я объяснил, почему это может быть так. Вы действительно прочитали мой ответ? Вы даже посмотрели документацию для 'high_resolution_clock'? –

+0

жаль, что я пропустил это! Я попробую ваше решение – hadis

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