军事研究员 2024-09-11 10:18 采纳率: 98.6%
浏览 60
已结题

Makefile: 编译报错: error: invalid suffix on literal

Makefile: 编译报错: error: invalid suffix on literal; C++11 requires a space between literal and string macro [-Werror=literal-suffix]

img

project/../XXXX/XXXX/XXX/XXXX/include/debug/Debug.h:72:45: error: invalid suffix on literal; C++11 requires a space between literal and string macro [-Werror=literal-suffix]
   72 |   debug_msg("<<FILE:"BLUE"%s"NONE" LINE:"RED"%d"NONE" FUNC:"GREEN"%s"NONE">>", \


报错:warning: invalid suffix on literal; C++11 requires a space between literal and string macro


img

  • 写回答

1条回答 默认 最新

  • 越重天 新星创作者: Java技术领域 2024-09-11 10:20
    关注

    错误解释:

    这个错误通常出现在C++代码中,当你使用C++11或更高标准时,如果在数字字面量和它的后缀之间没有空格,就会出现这个错误。在C++中,数字字面量的后面通常需要跟一个空格或者一个标识符结束。例如,当你写一个数字后跟一个L(代表long类型)时,它们之间必须有空格。

    解决方法:

    检查你的Makefile中指定的编译器选项是否正确,确保它们兼容C++11或更高标准。

    然后,检查代码中的数字字面量。找到所有可能的数字后缀(如L、ul、ULL等),确保在数字和后缀之间有一个空格。例如,将1000L改为1000 L。

    如果你确定代码和Makefile都是正确的,但错误依然存在,可能是编译器的问题。尝试更新你的编译器到最新版本,或者检查编译器的相关设置,确保它们配置正确以支持C++11标准。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 6月5日
  • 已采纳回答 5月28日
  • 修改了问题 9月18日
  • 修改了问题 9月11日
  • 展开全部