【发布时间】:2014-09-23 08:36:18
【问题描述】:
我正在尝试使用 GCC++ 在我的(最新的)Centos 6.5 上从 Github 编译一些代码。
但是当我尝试编译代码时收到以下错误消息。
下面一行是失败的:
...
#define __STDC_FORMAT_MACROS 1
...
#include <inttypes.h>
...
inline std::string i64tostr(int64_t n)
{
return strprintf("%"PRId64, n); // <-- errors here.
}
...
错误是:
error: expected ')' before 'PRId64
可能是什么问题,我该如何解决?
编辑 1:这是失败的代码行。
https://github.com/rat4/blackcoin/blob/master/src/util.h#L226
编辑 2: 用 printf("%" PRId64, n); 替换代码(注意额外的空格),如建议的答案中所建议的那样不起作用, (给出相同的错误消息)。
【问题讨论】:
-
它对我来说没问题:coliru.stacked-crooked.com/a/f3aff44dd52c22be - 你确定你有所有相关的#includes 吗?前几行中是否有任何警告或其他问题?
-
这 - stackoverflow.com/questions/11869593/… - 是一个答案
-
顺便说一句,最好(将来)在问题中包含编译器版本和编译参数
-
我添加了github代码的链接。正如我所说,我的 Centos 6.5 都是最新的,包括 GCC
-
进一步查看源文件,提示您的编译器可能不正确支持 inttypes.h,添加
#ifndef PRId64#error Lame compiler detected#endif