g++ 未在 Windows 上使用通配符文件名进行编译
g++ not compiling with wildcard filenames on Windows
当使用基于通配符的文件名时,突然之间我似乎很难从 Windows(特别是 10)上的命令行编译 C++ 程序(特别是 TDM64 5.1.0)。当给出完整的名称时,它工作正常。我以前做过无数次都没有问题 编辑:但通常不会 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
你的问题是你写的地方:
g++ *.cpp
g++
是一个 linux 风格的程序,并期望 shell 为其扩展通配符。 windows 命令 shell 不会这样做 - 它希望各个程序为自己扩展通配符。
最简单的解决方案是下载 cygwin - 它会为您扩展通配符。否则这个问题的答案可能会有用:
我注意到 TDM 基于 GCC 的 MINGW 端口。我发现这个编译器的不同版本实际上对通配符的处理方式不同。例如,从 3.4.2 版开始,它对我来说工作得很好,在 Windows 7:
中编译
但是,当我升级到 GCC v.4.9.2 时,这个批处理文件和我使用的其他批处理文件损坏了(具体来说,*.cpp 无法识别)。这是随 Dev-C++ IDE 一起提供的 MINGW GCC 版本。因为我非常需要这个功能(具体来说,测试编译大量提交的带有未指定随机文件名的学生代码),我实际上不得不降级并恢复到旧版本,为此目的。
当使用基于通配符的文件名时,突然之间我似乎很难从 Windows(特别是 10)上的命令行编译 C++ 程序(特别是 TDM64 5.1.0)。当给出完整的名称时,它工作正常。我以前做过无数次都没有问题 编辑:但通常不会 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
你的问题是你写的地方:
g++ *.cpp
g++
是一个 linux 风格的程序,并期望 shell 为其扩展通配符。 windows 命令 shell 不会这样做 - 它希望各个程序为自己扩展通配符。
最简单的解决方案是下载 cygwin - 它会为您扩展通配符。否则这个问题的答案可能会有用:
我注意到 TDM 基于 GCC 的 MINGW 端口。我发现这个编译器的不同版本实际上对通配符的处理方式不同。例如,从 3.4.2 版开始,它对我来说工作得很好,在 Windows 7:
中编译但是,当我升级到 GCC v.4.9.2 时,这个批处理文件和我使用的其他批处理文件损坏了(具体来说,*.cpp 无法识别)。这是随 Dev-C++ IDE 一起提供的 MINGW GCC 版本。因为我非常需要这个功能(具体来说,测试编译大量提交的带有未指定随机文件名的学生代码),我实际上不得不降级并恢复到旧版本,为此目的。