我用mingw編譯項目並且項目是很酷的編譯器。 這是我的部分代碼'to_string'不是'std'的成員
#include "astnodecodegenerator.hpp"
#include "utility.hpp"
#include "constants.hpp"
#include <string>
#include <cmath>
#include <sstream>
#include <stack>
。 。 。 。
void AstNodeCodeGenerator::visit(StringConst& str)
{
emit_la("a0", (std::string("str_const") + std::to_string(stringtable().get_idx(str.token.get_val()))).c_str());
}
void AstNodeCodeGenerator::visit(IntConst& int_const)
{
emit_la("a0", (std::string("int_const") + std::to_string(inttable().get_idx(int_const.token.get_val()))).c_str());
}
的錯誤是:
error :'to_string' is not a member of 'std' emit_la<"a0",<std::string(("str_const") + std::to_string(stringtable().get_idx(str.token.get_val()))).c_str());
'to_string'是一個C++ 11功能。你可能不得不打開它。 –
在命令行中使用'-std = C++ 11'來打開C++ 11。 – Cameron
這是makefile的一部分:---- CFLAGS = -g -Wall -Wextra -std = C++ 11 -Wno-write-strings ../../include/boost – user3341263