.cpp ошибка: нет совпадения для 'operator <' в 'std :: cerr <"Преобразование файла \" "' - PullRequest
1 голос
/ 08 августа 2011

Я пытаюсь выполнить этот код nmea2kml.cpp

но я продолжаю получать следующие ошибки. Также программа имеет параметры командной строки -f path Read file at given path (e.g. /some/where/nmea.txt) Что я должен изменить, чтобы запустить программу? Я получаю ошибку из-за проблемы с компилятором? Потому что я запутался с добавлением Cygwin, MinGW компиляторов для затмения! Я знаю, что программа правильная. Другие использовали его и получили результаты. (http://julien.cayzac.name/code/gps/)

Error

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

Ответы [ 3 ]

3 голосов
/ 08 августа 2011

Похоже, что вы написали std::cerr < "..." (оператор <), где вы хотели написать std::cerr << "..." (оператор <<).

1 голос
/ 08 августа 2011

Нет, указанный код неверен.Вы выполняете вывод с std::cout << ..., а не std::cout < ....Вероятно, некоторые преобразования HTML испортили это.

1 голос
/ 08 августа 2011

Попробуйте использовать битовый сдвиг «<<» вместо оператора «<» меньше с вашими ostreams: </p>

std::cerr << "Converting file \"";
...