.cpp 错误:与 'operator<' 不匹配在 'std::cerr < “正在转换文件”“”
我正在尝试执行此代码 nmea2kml.cpp
但我不断收到以下错误。该程序还具有命令行参数 -f path 在给定路径读取文件(例如/some/where/nmea.txt)
我应该更改什么来运行该程序?我收到的错误是由于编译器问题吗?因为我把 cygwin、MinGW 编译器添加到 eclipse 搞砸了!我知道程序是正确的。其他人已经使用它并得到了结果。(http://julien.cayzac.name/code/gps/)
错误
g++ -O0 -g3 -Wall -c -fmessage-length=0 -osrc\nmea.o ..\src\nmea.cpp
..\src\nmea.cpp: In function `int main(int, char**)':
..\src\nmea.cpp:195: error: no match for 'operator<' in 'std::cerr < "Converting file \""'
..\src\nmea.cpp:195: note: candidates are: operator<(const char*, const char*) <built-in>
..\src\nmea.cpp:195: note: operator<(void*, void*) <built-in>
..\src\nmea.cpp:336: error: no match for 'operator<' in 'std::cout < "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>"'
..\src\nmea.cpp:336: note: candidates are: operator<(const char*, const char*) <built-in>
..\src\nmea.cpp:336: note: operator<(void*, void*) <built-in>
..\src\nmea.cpp:336: error: `std::endl(std::basic_ostream<_CharT, _Traits>&)' cannot appear in a constant-expression
..\src\nmea.cpp:355: error: parse error in template argument list
..\src\nmea.cpp:336: error: `endl<<expression error> >' cannot appear in a constant-expression
..\src\nmea.cpp:406: error: parse error in template argument list
..\src\nmea.cpp:336: error: `endl<<expression error> >' cannot appear in a constant-expression
..\src\nmea.cpp:406: error: parse error in template argument list
..\src\nmea.cpp:336: error: `endl<<expression error> >' cannot appear in a constant-expression
..\src\nmea.cpp:406: error: parse error in template argument list
..\src\nmea.cpp:406: error: expected `;' before '}' token
..\src\nmea.cpp:193: warning: unused variable 'outfile'
Build error occurred, build is stopped
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
看起来你已经写了
std::cerr < “...”
(<
运算符),您要在其中写入std::cerr << “...”
(<<
运算符)。It looks like you have written
std::cerr < "..."
(the<
operator) where you meant to writestd::cerr << "..."
(the<<
operator).尝试使用位移位“<<”而不是小于号“<”与您的 ostream 的运算符:
Try using the bit-shift "<<" instead of the less-than "<" operator with your ostreams:
不,所示的代码不正确。您可以使用
std::cout << 执行输出...
,而不是std::cout
...
。可能是一些 HTML 转换搞砸了。No, the code as shown is not correct. You perform output with
std::cout << ...
, notstd::cout < ...
. Probably some HTML conversion messed it up.