2016-03-08 2 views
3

Я пытаюсь создать программу под названием darkstar для частного FFXI-сервера. Я пытаюсь построить это на FreeBSD 10.2. Я использую GCC 5.3 из портов, чтобы попытаться построить это.chrono_literals не является именем пространства имен

С помощью этого make CC = gcc5 CXX = g ++ 5 CPP = "gcc5 -E", чтобы вызвать правильную версию GCC/G ++.

Это код ошибки, который меня выгнали.

src/common/../common/../common/cbasetypes.h:336:22: error: 'chrono_literals'   is not a namespace-name 
    using namespace std::chrono_literals; 
       ^
src/common/../common/../common/cbasetypes.h:336:37: error: expected namespace-name before ';' token 
    using namespace std::chrono_literals; 

Я проверил, чтобы убедиться, что хроно на самом деле в правильном месте, которое оно является в/USR/включать/C++/v1/хронометр.

Если ошибка возникает, это код, который находится в строке 336 в cbasetypes.h и несколько строк после.

#include <chrono> 

using namespace std::chrono_literals; 
using server_clock = std::chrono::steady_clock; 
using time_point = server_clock::time_point; 
using duration = server_clock::duration; 

Не уверен, что делать, чтобы обойти эту ошибку, хотя я решил, что это сообщество станет хорошим местом для начала.

Спасибо заранее!

+0

Может быть, здесь трещина, так что это не ответ, но попробуйте 'std :: literals :: chrono_literals'. – user4581301

+0

Спасибо, но, к сожалению, это не работает. – user6031824

+0

Другой вопрос: вы компилируете с диалектом, установленным в C++ 11 или 14? chrono_literals новичок в 14. Я считаю, что переключатель: -std = C++ 1y' – user4581301

ответ

5

Вы ошибаетесь std::literals::chrono_literals.

Помните, что вы компилируете исходный код в соответствии с C++ 14 (литералы chrono не указаны в C++ 11).

+0

Я пропустил это, спасибо, используя std :: literals :: chrono_literals g ++ -std = C++ 14, а затем flags -std = gnu ++ 14, - станд = C++ 14. – user6031824

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