1

我正在尝试执行此代码nmea2kml.cpp

但我不断收到以下错误。该程序还有命令行参数-f path Read file at given path (e.g. /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
4

3 回答 3

3

看起来你已经在你打算写的地方写了std::cerr < "..."(运算符) (运算符)。<std::cerr << "..."<<

于 2011-08-08T04:30:17.307 回答
1

尝试在您的 ostream 中使用位移“<<”而不是小于“<”运算符:

std::cerr << "Converting file \"";
于 2011-08-08T04:30:47.583 回答
1

不,显示的代码不正确。std::cout << ...您使用,而不是执行输出std::cout < ...。可能是一些 HTML 转换搞砸了。

于 2011-08-08T04:32:23.500 回答