Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 迁移到Xcode,现在有很多;不是std的成员;以及其他一些标题问题_C++_Xcode_Macos_Header_G++ - Fatal编程技术网

C++ 迁移到Xcode,现在有很多;不是std的成员;以及其他一些标题问题

C++ 迁移到Xcode,现在有很多;不是std的成员;以及其他一些标题问题,c++,xcode,macos,header,g++,C++,Xcode,Macos,Header,G++,我正在迁移到OSX,现在正在尝试使用Xcode。 有一个项目在g++linux发行版上正常编译和运行,现在在mac上返回了上千个错误。我猜linux std文件,不知何故包含了其他需要的文件,现在它们在Mac OS X的std中没有这样的连接。 我怎么知道我做错了什么,比如: /Users/Jonathan/Development/C++/Josk/Var.h:257:0 No match for 'operator<<' in 'out << ((Josk::Var*)

我正在迁移到OSX,现在正在尝试使用Xcode。 有一个项目在g++linux发行版上正常编译和运行,现在在mac上返回了上千个错误。我猜linux std文件,不知何故包含了其他需要的文件,现在它们在Mac OS X的std中没有这样的连接。 我怎么知道我做错了什么,比如:

/Users/Jonathan/Development/C++/Josk/Var.h:257:0 No match for 'operator<<' in 'out << ((Josk::Var*)Jv)->Josk::Var::ToString()' in /Users/Jonathan/Development/C++/Josk/Var.h

/Users/Jonathan/Development/C++/Josk/Var.h:257:0与“operator”不匹配看起来您缺少了
\include

看起来您缺少了
\include
Mac OS x也使用了gcc,您在Linux上使用的是什么版本?标准库类位于命名空间
std
。您是否有使用命名空间std的
某处?(糟糕!)第一个错误是什么,是哪段代码导致的?在C++中,许多错误只是由早期错误引起的后续错误。samm:Linux STL确实包含一些OSX上不可用的非标准扩展,例如
std::bit\u xor
。但是,我怀疑这可能会导致数千个错误。试着用say std::cout编译一个简单的“Hello World”程序,这样行吗?@samm:我现在看不到版本,我会尽快在这里发布@GMan:不,我在任何地方都不使用using关键字,不是为了标准,也不是为了我自己的课程@Philipp:上面的错误是第一个错误,现在只有8个错误,它们都是一样的,因为我删除了一些文件只是为了看到更少的错误,所以我可以轻松地浏览它们@马克:我做了一些测试,效果很好,问题似乎出在头文件中。感谢大家对Smac OS x使用gcc的所有评论,您在Linux上使用的是什么版本?标准库类位于命名空间
std
中。您是否有使用命名空间std的
某处?(糟糕!)第一个错误是什么,是哪段代码导致的?在C++中,许多错误只是由早期错误引起的后续错误。samm:Linux STL确实包含一些OSX上不可用的非标准扩展,例如
std::bit\u xor
。但是,我怀疑这可能会导致数千个错误。试着用say std::cout编译一个简单的“Hello World”程序,这样行吗?@samm:我现在看不到版本,我会尽快在这里发布@GMan:不,我在任何地方都不使用using关键字,不是为了标准,也不是为了我自己的课程@Philipp:上面的错误是第一个错误,现在只有8个错误,它们都是一样的,因为我删除了一些文件只是为了看到更少的错误,所以我可以轻松地浏览它们@马克:我做了一些测试,效果很好,问题似乎出在头文件中。谢谢你的所有评论<代码>
不包含
运算符true的重载,在包含字符串的情况下,它工作正常。但是我怎么知道这个特定的包含会对我有帮助呢?Philipp:ToString返回一个const char*。它工作的原因是std::string有一个非显式构造函数,它的唯一参数是
const char*
。这意味着它是自动转换的。除了让string和const char*之间的连接看起来合理之外,我不知道你怎么知道<代码>
不包含
运算符true的重载,在包含字符串的情况下,它工作正常。但是我怎么知道这个特定的包含会对我有帮助呢?Philipp:ToString返回一个const char*。它工作的原因是std::string有一个非显式构造函数,它的唯一参数是
const char*
。这意味着它是自动转换的。除了在string和const char*之间建立连接之外,我不知道您如何知道。
friend ostream& operator << (ostream &out, Josk::Var &Jv){
  out << Jv.ToString();
return out;
}
#include <iostream>
#include <ostream>
#include <typeinfo>
#include <map>
#include <utility>
#include <algorithm>