2016-04-11 9 views
1

ワイルドカードベースのファイル名を使用すると、突然、Windows(特に10)のコマンドラインからC++プログラム(特にTDM64 5.1.0)のコンパイルがうまくいかないようです。名前が完全に与えられるとうまくいきます。私はこの無数の時間前に何の問題もなくしました編集:しかし、窓には普通ではありません...前にこの作業の私の記憶は偽でなければなりません。私は何が欠けていますか?g ++がWindowsでワイルドカードファイル名でコンパイルされない

C:\Users\Duncan Coulter\Code>dir *.cpp 
Volume in drive C has no label. 
Volume Serial Number is 9EE6-DBBD 

Directory of C:\Users\Duncan Coulter\Code 

2016/04/04 01:35 PM    7 869 LittleMan.cpp 
2016/04/04 01:35 PM    1 912 main.cpp 
       2 File(s)   9 781 bytes 
       0 Dir(s) 90 288 394 240 bytes free 

C:\Users\Duncan Coulter\Code>g++ *.cpp 
g++: error: *.cpp: Invalid argument 

C:\Users\Duncan Coulter\Code>g++ main.cpp LittleMan.cpp 
+0

引用符で囲まれたプレーンテキスト( ">"と5つのスペースで開始してください)を書いても大丈夫です。 –

+0

@MartinBonner Ok '要求通りにプレーンテキストに切り替えました。 – DuncanACoulter

+1

私はあなたの記憶障害ではないと思います。 GCC(現在のバージョン4.9.2)のバージョンをアップグレードしたばかりで、以前は* .cppを使用していたWindowsバッチファイルを変更する必要があり、特定のファイル名で置き換えない限り動作しません。 –

答えて

3

あなたが書いたところあなたの問題は、次のとおりです。

g++ *.cpp 

g++は、Linuxスタイルのプログラムであり、シェルはそれのためのワイルドカードを拡大する予定。 windowsコマンドシェルはそれをしません - 個々のプログラムがワイルドカードを展開することを期待しています。

最も簡単な解決策は、cygwinをダウンロードすることです。これはワイルドカードを展開します。そうでない場合は、この質問への回答が役に立つことがあります。

https://superuser.com/questions/460598/is-there-any-way-to-get-the-windows-cmd-shell-to-expand-wildcard-paths

+0

ああ、私は通常Linuxを使用していて、Windows上でこの作業に間違った思い出を作成しているに違いない。 – DuncanACoulter

+0

私はこれもMSYSがこれを処理していると推測している。 – DuncanACoulter

1

私はTDMは、GCCのMINGWポートに基づいていることに注意してください。私は、このコンパイラの異なるバージョンが実際にワイルドカードを別々に扱うことを発見しました。例えば、それは、Windows 7でコンパイル、バージョン3.4.2のように私のために完璧に正常に動作します:

GCC v.3.4.2 compiling with wildcard on Windows 7

しかし、私はGCCのv.4.9.2、このバッチファイルや他の人にアップグレードしたときに、私がして(* .cppは認識されませんでした)。これは、Dev-C++ IDEに付属のMINGW GCCのバージョンです。この機能はむしろ悪い(具体的には、指定されていないランダムなファイル名の学生コードの大きな投稿をテストコンパイルする必要があるため)、私は実際にこの目的のために古いバージョンにダウングレードして元に戻す必要がありました。

+0

'g ++ * .cpp'は、Windows 10のコマンドプロンプトmingw-w64(mingw-builds edition 4.9.2)で私にとって完璧にうまく動作します。 –

+1

その価値については、未知のファイル名の学生投稿を編集していました。 – DuncanACoulter

関連する問題