我正在尝试构建一个名为darkstar的程序,一个私有的FFXI服务器。我正在尝试将其构建在FreeBSD 10.2稳定版上。我正在使用ports中的GCC 5.3来尝试构建它。
使用这个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;我检查了一下,以确保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;虽然我不确定如何解决这个错误,但我认为这个社区将是一个很好的起点。
提前谢谢你!
发布于 2016-03-08 16:48:40
你拼写错了std::literals::chrono_literals。
记住要确保你是根据C++14编译源代码的(C++11中没有提供计时器文字)。
发布于 2019-06-04 02:27:30
这对我来说很有效:
using namespace std::literals::chrono_literals;并将此代码添加到CMakeLists.txt中
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)发布于 2021-12-13 19:06:26
#include <chrono>
using namespace std::chrono_literals; 可以,但您至少需要C++14编译标志。
https://stackoverflow.com/questions/35856969
复制相似问题