含括号的C++文件名编译报错原因咨询(Windows 10+VSCode)
带括号的C++文件名编译报错的原因分析
- 终端特殊符号解析冲突:Windows下的PowerShell/CMD会把圆括号
()视为命令语法的一部分,用来处理子表达式或命令分组。当你执行编译命令时,终端会误将文件名里的(PureVirtualFunctions)当成要执行的子命令,而非文件名的一部分,因此抛出“未被识别为可运行程序”的错误。 - 下划线是合法常规字符:下划线
_是Windows系统和C++编译工具都认可的普通文件名字符,不会被终端或编译器当作特殊符号解析,替换括号后,编译命令能正确识别完整的文件名,所以编译恢复正常。 - 额外提示:如果非要保留括号作为文件名的一部分,只需给文件名加上双引号,比如编译命令写成
g++ "polymorphism(PureVirtualFunctions).cpp" -o output,终端就会把引号内的内容当作完整文件名处理,不会解析括号。
内容的提问来源于stack exchange,提问作者adxsh
相关产品推荐
相关产品推荐

