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 に答える