2015-08-19 2 views
4

Я пытаюсь простой программой для печати значения временной метки в steady_clock, как показано ниже на C++:ошибка: uint64_t не был объявлен в этой области при составлении программы

#include <iostream> 
#include <chrono> 
using namespace std; 
int main() 
{ 
    cout << "Hello World! "; 
    uint64_t now = duration_cast<milliseconds>(steady_clock::now().time_since_epoch()).count(); 
    cout<<"Value: " << now << endl; 

    return 0; 
} 

Но всякий раз, когда я компиляция как этот g++ -o abc abc.cpp, Я всегда получаю сообщение об ошибке:

In file included from /usr/include/c++/4.6/chrono:35:0, 
       from abc.cpp:2: 
/usr/include/c++/4.6/bits/c++0x_warning.h:32:2: error: #error This file requires compiler and library support for the upcoming ISO C++ standard, C++0x. This support is currently experimental, and must be enabled with the -std=c++0x or -std=gnu++0x compiler options. 
abc.cpp: In function âint main()â: 
abc.cpp:7:3: error: âuint64_tâ was not declared in this scope 
abc.cpp:7:12: error: expected â;â before ânowâ 
abc.cpp:8:22: error: ânowâ was not declared in this scope 

Есть ли что-то не так, что я делаю?

ответ

4

Очевидно, я не после определенных лучших практиков, но только пытаюсь получить вещи работать для вас

#include <iostream> 
#include <chrono> 
#include <cstdint> // include this header for uint64_t 

using namespace std; 
int main() 
{ 
    { 
    using namespace std::chrono; // make symbols under std::chrono visible inside this code block 
    cout << "Hello World! "; 
    uint64_t now = duration_cast<milliseconds>(steady_clock::now().time_since_epoch()).count(); 
    cout<<"Value: " << now << endl; 
    } 

    return 0; 
} 

, а затем скомпилировать с помощью C++ 11 включена (C++ 0x в вашем случае)

g++ -std=c++0x -o abc abc.cpp 
+0

Когда я запустил это, я вижу эту ошибку 'error: stable_clock не был объявлен'. Любые мысли, почему это происходит, когда мы уже объявили об этом? – user1950349

+1

stable_clock находится под std :: chrono. Или используйте полное имя (std :: chrono :: stable_clock) или сделайте символы видимыми, используя использование пространства имен std :: chrono, как показано в моем примере выше. – Arun

+0

Я попробовал только с вашим примером, а затем я получил ошибку выше. Я просто использовал ваш пример так, как есть. – user1950349

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

  • Нет связанных вопросов^_^