我使用get_time()和mtkime()将我的DateTime类的对象的值转换为unix时间戳,以便我可以轻松地比较我的DateTime类的两个实例。这是我生成时间戳的代码
stringstream date_ss1;
date_ss1 << (*this);
istringstream date_iss(date_ss1.str());
struct tm date;
date_iss >> get_time( &date, "%Y/%m/%d-%H:%M" );
timestamp = mktime( &date );
此代码在我的Mac上编译并完美运行。 但是在远程服务器上编译它时,它是唯一的错误。
DateTime.h:40:12: error: ‘std::get_time’ has not been declared
using std::get_time;
如果信息有帮助,服务器的编译器在查找mtkime方面没有问题。
配置: --prefix = / Applications / Xcode.app / Contents / Developer / usr --with-gxx-include-dir = / usr / include / c ++ / 4.2.1 Apple LLVM 9.0.0版(clang-900.0.37)目标:x86_64-apple-darwin16.7.0线程模型:posix InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
gcc(GCC)5.3.1 20160406(Red Hat 5.3.1-6)
我通过运行
在我的Mac和远程服务器上获得了编译器的版本gcc --version
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <sstream>
#include <ctime>
#include <exception>
using std::ostream;
using std::istream;
using std::string;
using std::setfill;
using std::setw;
using std::endl;
using std::stringstream;
using std::istringstream;
using std::cout;
using std::invalid_argument;
using std::exit;
using std::get_time;
/*code*/
答案 0 :(得分:0)
通过在编译调用中添加“-std = c ++ 11”,我能够在服务器上成功编译代码。这有效:
g++ -std=c++11 DateTime.cpp