2

私は最近、http://ftp.gnome.org/pub/gnome/binaries/win32/gtk+/2.24/gtk+-bundle_2.24.10-20120208_win32.zip から cygwin-x86_64 と gtk をインストールし、 http://protzからocaml をインストールしました。 github.io/ocaml-installer/ . 「cygwin 用にプリコンパイルされた」バイナリ (ocaml や gtk など) からコマンドを実行すると、出力の末尾に ^M が追加されます。例えば、

$ ocamlc -where > foo; cat -v foo
D:/OCaml/lib^M

この問題を解決するにはどうすればよいですか?

更新:バイナリを~/(または他の cygwin パス) にコピーすると、^M出力が得られません。これは、バイナリが MS DOS の場所にある場合にのみ発生します。バイナリを移動せずにこれを修正する方法はありますか?

ランニングmountは与える

$ mount D:/cygwin64/bin on /usr/bin type ntfs (binary,auto) D:/cygwin64/lib on /usr/lib type ntfs (binary,auto) D:/cygwin64 on / type ntfs (binary,auto) C: on /cygdrive/c type ntfs (binary,posix=0,user,noumount,auto) D: on /cygdrive/d type ntfs (binary,posix=0,user,noumount,auto) E: on /cygdrive/e type ntfs (binary,posix=0,user,noumount,auto) Y: on /cygdrive/y type afs (binary,posix=0,user,noumount,auto) Z: on /cygdrive/z type afs (binary,posix=0,user,noumount,auto)

4

2 に答える 2

0

^M は、Carriage ReturnWindows では使用されますが、Unix のようなシステムでは使用されません。sed、tr、またはお気に入りのツールを使用して、ファイルから CR を削除します。Windows コマンド ラインを使用している場合は、

tr -d '\r'  < foo.txt > bar.txt
sed -e 's/\r//g' foo.txt > bar.txt

vi モードを有効にした端末を使用している場合は、

tr -d '^M'  < foo.txt > bar.txt
sed -e 's/^M//g' foo.txt > bar.txt

^M はキー Ctrl + M で入力できます

于 2013-11-09T01:35:45.107 に答える
0

私にとっては、protz で cygwin と ocaml-installer を混在させるのは間違っているように思えます。最後の 1 つはネイティブ ウィンドウ用です (そのインストーラでは、cygwin はシェルを提供するためだけに使用されます)。Cygwin で (cygwin gcc コンパイラとライブラリを使用して) ocaml を使用する場合は、cygwin リポジトリから (cygwin-setup.exe を介して) ocaml をインストールする必要があります。ネイティブの Windows プログラムと cygwin でコンパイルされたプログラムには違いがあり、それらを混在させて開発することはほとんど成功しません。

于 2013-11-09T05:45:21.140 に答える