C++程序编译遇到这种提示是什么意思?

wangxiaoxiaodeMacBook-Air:Text_Query wangxiaoxiao$ g++ -std=c++11  main.cpp  TextQuery.cpp QueryResult.cpp Query.cpp Query_base.cpp WordQuery.cpp AndQuery.cpp OrQuery.cpp  -o TextQuery
Undefined symbols for architecture x86_64:
  "operator&(Query const&, Query const&)", referenced from:
      RunQueries(std::basic_ifstream<char, std::char_traits<char> >&) in ccnB7ljN.o
  "operator|(Query const&, Query const&)", referenced from:
      RunQueries(std::basic_ifstream<char, std::char_traits<char> >&) in ccnB7ljN.o
ld: symbol(s) not found for architecture x86_64
collect2: error: ld returned 1 exit status

你的函数定义和调用的参数不同,检查下你的代码。这里你用到了Query的重载,看你调用的代码,是不是类型定义或者使用错了。

是操作符未重载的意思

你在ccnB7ljN.o定义了这2个运算符重载函数但是没有实现它。
仔细检查你的代码确定实现了这2个函数并且和定义一致。

http://blog.csdn.net/diqun1314/article/details/19039441

或者尝试,编译选项添加-lstdc++

1.确认下你的编译器是否支持C++11标准;
2.操作符重载的时候调用参数不正确;