Windows系统下MinGW的gcc -I参数引入头文件报错如何解决?
问题根因
你执行的命令中,双引号包裹的路径末尾的
\在Windows shell(Cmd/PowerShell)中会被识别为转义字符,转义了路径后面的闭合双引号,导致shell把后续的.\mqtt-c.c也判定为-I参数的路径内容,gcc因此找不到单独声明的输入源文件,触发报错。
解决方案
以下任意一种方法都可以解决问题:
- 直接删除路径末尾的反斜杠,gcc识别目录路径不需要末尾的分隔符:
gcc -I "C:\Program Files\Mosquitto\devel" .\mqtt-c.c - 如果你需要保留路径末尾的分隔符,对末尾的反斜杠做转义处理:
gcc -I "C:\Program Files\Mosquitto\devel\\" .\mqtt-c.c - 把路径中的所有反斜杠替换为正斜杠,MinGW gcc原生支持Windows路径使用正斜杠作为分隔符,不存在转义问题:
gcc -I "C:/Program Files/Mosquitto/devel" .\mqtt-c.c
内容的提问来源于stack exchange,提问作者hweiu321
相关产品推荐
相关产品推荐

