我正在尝试构建一个名为darkstar的程序,一个私有的FFXI服务器.我试图在FreeBSD 10.2稳定版本上构建它.我正在从端口使用GCC 5.3来尝试构建它.
使用这个使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;
Run Code Online (Sandbox Code Playgroud)
我已经检查过以确保chrono实际上位于/ usr/include/c ++/v1/chrono的正确位置.
在抛出错误的地方,这是来自cbasetypes.h中的第336行以及之后的几行的代码.
#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;
Run Code Online (Sandbox Code Playgroud)
不知道如何解决这个错误,虽然我认为这个社区将是一个很好的起点.
先感谢您!
Tob*_*ght 11
你拼错了std::literals::chrono_literals.
请记住确保您根据C++ 14编译源代码(C++ 11中未提供计时文字).
小智 7
这对我有用:
using namespace std::literals::chrono_literals;
Run Code Online (Sandbox Code Playgroud)
并将其添加到CMakeLists.txt:
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
Run Code Online (Sandbox Code Playgroud)