我开发了一个相当大的应用程序,在我的Mac上使用Xcode(5.1.1)。所有代码都运行完美,并按照它的设想行事。但是,当我在我的大学linux服务器上重新编译相同的代码时,gcc 4.8.3会显示无数错误。使用pscp命令将源代码文件上载到服务器,因此不涉及任何形式的修改。我的问题是:有没有办法做一个"兼容模式"在Xcode上,以便我可以在上传到大学服务器之前尝试解决任何兼容性问题?
编辑:有些错误是:
BinarySearchTree.cpp:29:23: warning: non-static data member initializers only avau++11 [enabled by default]
int insertCount = 0, containsCount = 0, removeCount = 0;
^
BinarySearchTree.cpp:29:42: warning: non-static data member initializers only avau++11 [enabled by default]
int insertCount = 0, containsCount = 0, removeCount = 0;
^
BinarySearchTree.cpp:29:59: warning: non-static data member initializers only avau++11 [enabled by default]
int insertCount = 0, containsCount = 0, removeCount = 0;
^
BinarySearchTree.cpp:30:21: warning: non-static data member initializers only avau++11 [enabled by default]
int nodeCount = 0;
^
BinarySearchTree.cpp:47:36: error: expected ',' or '...' before '&&' token
BinarySearchTree(BinarySearchTree && rhs) : root{ rhs.root }
^
BinarySearchTree.cpp:47:42: error: invalid constructor; you probably meant 'BinarnarySearchTree<Comparable>&)'
BinarySearchTree(BinarySearchTree && rhs) : root{ rhs.root }
^
BinarySearchTree.cpp:48:2: error: expected unqualified-id before '{' token
{
^
BinarySearchTree.cpp:73:48: error: expected ',' or '...' before '&&' token
BinarySearchTree & operator=(BinarySearchTree && rhs)
^
BinarySearchTree.cpp:153:25: error: expected ',' or '...' before '&&' token
void insert(Comparable && x)
^
BinarySearchTree.cpp:185:25: error: expected ',' or '...' before '&&' token
BinaryNode(Comparable && theElement, BinaryNode *lt, BinaryNode *rt)
^
BinarySearchTree.cpp:216:25: error: expected ',' or '...' before '&&' token
void insert(Comparable && x, BinaryNode * & t)
^
BinarySearchTree.cpp:216:7: error: 'void BinarySearchTree<Comparable>::insert(Com
void insert(Comparable && x, BinaryNode * & t)
^
BinarySearchTree.cpp:153:7: error: with 'void BinarySearchTree<Comparable>::inser
void insert(Comparable && x)
^
BinarySearchTree.cpp: In constructor 'BinarySearchTree<Comparable>::BinarySearchT
BinarySearchTree.cpp:32:23: warning: extended initializer lists only available wiabled by default]
BinarySearchTree() : root{ NULL }
^
BinarySearchTree.cpp: In copy constructor 'BinarySearchTree<Comparable>::BinarySeomparable>&)':
BinarySearchTree.cpp:39:51: warning: extended initializer lists only available wiabled by default]
BinarySearchTree(const BinarySearchTree & rhs) : root{ NULL }
^
BinarySearchTree.cpp: In member function 'BinarySearchTree<Comparable>& BinarySeanarySearchTree<Comparable>)':
BinarySearchTree.cpp:75:19: error: 'rhs' was not declared in this scope
std::swap(root, rhs.root);
^
BinarySearchTree.cpp: In member function 'void BinarySearchTree<Comparable>::inse
BinarySearchTree.cpp:155:10: error: 'move' is not a member of 'std'
insert(std::move(x), root);
^
BinarySearchTree.cpp:155:20: error: 'x' was not declared in this scope
insert(std::move(x), root);
^
BinarySearchTree.cpp: In constructor 'BinarySearchTree<Comparable>::BinaryNode::BrySearchTree<Comparable>::BinaryNode*, BinarySearchTree<Comparable>::BinaryNode*)
BinarySearchTree.cpp:183:6: warning: extended initializer lists only available wiabled by default]
: element{ theElement }, left{ lt }, right{ rt } { }
^
BinarySearchTree.cpp:183:29: warning: extended initializer lists only available wnabled by default]
: element{ theElement }, left{ lt }, right{ rt } { }
^
BinarySearchTree.cpp:183:41: warning: extended initializer lists only available wnabled by default]
: element{ theElement }, left{ lt }, right{ rt } { }
^
BinarySearchTree.cpp: In constructor 'BinarySearchTree<Comparable>::BinaryNode::B
BinarySearchTree.cpp:186:6: warning: extended initializer lists only available wiabled by default]
: element{ std::move(theElement) }, left{ lt }, right{ rt } { }
^
BinarySearchTree.cpp:186:15: error: 'move' is not a member of 'std'
: element{ std::move(theElement) }, left{ lt }, right{ rt } { }
^
BinarySearchTree.cpp:186:25: error: 'theElement' was not declared in this scope
: element{ std::move(theElement) }, left{ lt }, right{ rt } { }
^
BinarySearchTree.cpp:186:40: warning: extended initializer lists only available wnabled by default]
: element{ std::move(theElement) }, left{ lt }, right{ rt } { }
^
BinarySearchTree.cpp:186:46: error: 'lt' was not declared in this scope
: element{ std::move(theElement) }, left{ lt }, right{ rt } { }
^
BinarySearchTree.cpp:186:52: warning: extended initializer lists only available wnabled by default]
: element{ std::move(theElement) }, left{ lt }, right{ rt } { }
^
BinarySearchTree.cpp:186:59: error: 'rt' was not declared in this scope
: element{ std::move(theElement) }, left{ lt }, right{ rt } { }
^
BinarySearchTree.cpp: In member function 'void BinarySearchTree<Comparable>::inseComparable>::BinaryNode*&)':
BinarySearchTree.cpp:202:12: warning: extended initializer lists only available wnabled by default]
t = new BinaryNode{ x, NULL, NULL };
^
BinarySearchTree.cpp: In member function 'void BinarySearchTree<Comparable>::inse
BinarySearchTree.cpp:218:7: error: 't' was not declared in this scope
if (t == NULL)
^
BinarySearchTree.cpp:219:12: warning: extended initializer lists only available wnabled by default]
t = new BinaryNode{ std::move(x), NULL, NULL };
^
BinarySearchTree.cpp:219:24: error: 'move' is not a member of 'std'
t = new BinaryNode{ std::move(x), NULL, NULL };
^
BinarySearchTree.cpp:219:34: error: 'x' was not declared in this scope
t = new BinaryNode{ std::move(x), NULL, NULL };
^
BinarySearchTree.cpp:220:12: error: 'x' was not declared in this scope
else if (x < t->element)
^
BinarySearchTree.cpp:221:11: error: 'move' is not a member of 'std'
insert(std::move(x), t->left);
^
BinarySearchTree.cpp:223:11: error: 'move' is not a member of 'std'
insert(std::move(x), t->right);
^
BinarySearchTree.cpp: In member function 'void BinarySearchTree<Comparable>::remoComparable>::BinaryNode*&)':
BinarySearchTree.cpp:243:23: error: 'nullptr' was not declared in this scope
else if (t->left != nullptr && t->right != nullptr) // Two children
^
BinarySearchTree.cpp: In member function 'BinarySearchTree<Comparable>::BinaryNodclone(BinarySearchTree<Comparable>::BinaryNode*) const':
BinarySearchTree.cpp:367:15: warning: extended initializer lists only available wnabled by default]
return new BinaryNode{ t->element, clone(t->left), clone(t->right) };
^
答案 0 :(得分:0)
实际上,我要将我的评论扩展为答案。
评论:看起来GCC没有构建为C ++ 11,而Xcode(可能是LLVM)。例如。请参阅声明nullptr未定义。
要强制LLVM进行编译,就好像Xcode中的旧式C ++编译器一样,打开项目设置,导航到这个:
...并选择C ++ 98。