在计算python 3的CPABE工具包时,我们在Ubuntu中收到以下错误:
它将运行良好到./configure
但是在> sudo make
它给出了以下错误:
<pre><font color="#8AE234"><b>saikumar@saikumar-H110M-S2</b></font>:<font color="#729FCF"><b>~/Downloads/new/cpb/cpab</b></font>$ sudo make
[sudo] password for saikumar:
gcc -c -o policy_lang.o policy_lang.c -O3 -Wall -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pbc -I/usr/local/include/pbc -DPACKAGE_NAME=\"cpabe\" -DPACKAGE_TARNAME=\"cpabe\" -DPACKAGE_VERSION=\"0.11\" -DPACKAGE_STRING=\"cpabe\ 0.11\" -DPACKAGE_BUGREPORT=\"[email protected]\" -DPACKAGE_URL=\"\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DSTDC_HEADERS=1 -DHAVE_FCNTL_H=1 -DHAVE_STDDEF_H=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MALLOC=1 -DLSTAT_FOLLOWS_SLASHED_SYMLINK=1 -DHAVE_VPRINTF=1 -DHAVE_LIBCRYPTO=1 -DHAVE_LIBCRYPTO=1 -DHAVE_STRCHR=1 -DHAVE_STRDUP=1 -DHAVE_MEMSET=1 -DHAVE_GMP=1 -DHAVE_PBC=1 -DHAVE_BSWABE=1
<b>policy_lang.y:</b> In function ‘<b>yyparse</b>’:
<b>policy_lang.y:67:38:</b> <font color="#EF2929"><b>error: </b></font>expected ‘<b>;</b>’ before ‘<b>}</b>’ token
result: policy { final_policy = $1 }
<font color="#EF2929"><b>^</b></font>
<b>policy_lang.y:</b> In function ‘<b>eq_policy</b>’:
<b>policy_lang.y:212:21:</b> <font color="#AD7FA8"><b>warning: </b></font>format ‘<b>%llu</b>’ expects argument of type ‘<b>long long unsigned int</b>’, but argument 3 has type ‘<b>uint64_t {aka long unsigned int}</b>’ [<font color="#AD7FA8"><b>-Wformat=</b></font>]
(g_strdup_printf(<font color="#AD7FA8"><b>"%s_flexint_%llu"</b></font>, attr, <font color="#4E9A06">n->value</font>));
<font color="#AD7FA8"><b>^~~~~~~~~~~~~~~~~</b></font> <font color="#4E9A06">~~~~~~~~</font>
<b>policy_lang.y:215:21:</b> <font color="#AD7FA8"><b>warning: </b></font>format ‘<b>%llu</b>’ expects argument of type ‘<b>long long unsigned int</b>’, but argument 4 has type ‘<b>uint64_t {aka long unsigned int}</b>’ [<font color="#AD7FA8"><b>-Wformat=</b></font>]
(g_strdup_printf(<font color="#AD7FA8"><b>"%s_expint%02d_%llu"</b></font>, attr, n->bits, <font color="#4E9A06">n->value</font>));
<font color="#AD7FA8"><b>^~~~~~~~~~~~~~~~~~~~</b></font> <font color="#4E9A06">~~~~~~~~</font>
<b>policy_lang.y:</b> In function ‘<b>yylex</b>’:
<b>policy_lang.y:391:18:</b> <font color="#AD7FA8"><b>warning: </b></font>format ‘<b>%llu</b>’ expects argument of type ‘<b>long long unsigned int *</b>’, but argument 3 has type ‘<b>uint64_t * {aka long unsigned int *}</b>’ [<font color="#AD7FA8"><b>-Wformat=</b></font>]
sscanf(s->str, <font color="#AD7FA8"><b>"%llu"</b></font>, <font color="#4E9A06">&(yylval.nat)</font>);
<font color="#AD7FA8"><b>^~~~~~</b></font> <font color="#4E9A06">~~~~~~~~~~~~~</font>
<b>policy_lang.y:</b> In function ‘<b>parse_attribute</b>’:
<b>policy_lang.y:577:17:</b> <font color="#AD7FA8"><b>warning: </b></font>format ‘<b>%llu</b>’ expects argument of type ‘<b>long long unsigned int *</b>’, but argument 4 has type ‘<b>uint64_t * {aka long unsigned int *}</b>’ [<font color="#AD7FA8"><b>-Wformat=</b></font>]
if( sscanf(a, <font color="#AD7FA8"><b>" %s = %llu # %u "</b></font>, s, <font color="#4E9A06">&value</font>, &bits) == 3 )
<font color="#AD7FA8"><b>^~~~~~~~~~~~~~~~~~</b></font> <font color="#4E9A06">~~~~~~</font>
<b>policy_lang.y:596:26:</b> <font color="#AD7FA8"><b>warning: </b></font>format ‘<b>%llu</b>’ expects argument of type ‘<b>long long unsigned int</b>’, but argument 4 has type ‘<b>uint64_t {aka long unsigned int}</b>’ [<font color="#AD7FA8"><b>-Wformat=</b></font>]
(*l, g_strdup_printf(<font color="#AD7FA8"><b>"%s_expint%02d_%llu"</b></font>, s, bits, value));
<font color="#AD7FA8"><b>^~~~~~~~~~~~~~~~~~~~</b></font>
<b>policy_lang.y:598:22:</b> <font color="#AD7FA8"><b>warning: </b></font>format ‘<b>%llu</b>’ expects argument of type ‘<b>long long unsigned int *</b>’, but argument 4 has type ‘<b>uint64_t * {aka long unsigned int *}</b>’ [<font color="#AD7FA8"><b>-Wformat=</b></font>]
else if( sscanf(a, <font color="#AD7FA8"><b>" %s = %llu "</b></font>, s, <font color="#4E9A06">&value</font>) == 2 )
<font color="#AD7FA8"><b>^~~~~~~~~~~~~</b></font> <font color="#4E9A06">~~~~~~</font>
<b>policy_lang.y:612:26:</b> <font color="#AD7FA8"><b>warning: </b></font>format ‘<b>%llu</b>’ expects argument of type ‘<b>long long unsigned int</b>’, but argument 3 has type ‘<b>uint64_t {aka long unsigned int}</b>’ [<font color="#AD7FA8"><b>-Wformat=</b></font>]
(*l, g_strdup_printf(<font color="#AD7FA8"><b>"%s_flexint_%llu"</b></font>, s, value));
<font color="#AD7FA8"><b>^~~~~~~~~~~~~~~~~</b></font>
Makefile:50: recipe for target 'policy_lang.o' failed
make: *** [policy_lang.o] Error 1
</pre>
这是附加的makefile:
errors.............in command mode. https://drive.google.com/file/d/1gvVeFyEommObZqM6MnSmpSaCi4TM7ndl/view?usp=sharing
https://drive.google.com/file/d/1gvVeFyEommObZqM6MnSmpSaCi4TM7ndl/view?usp=sharing