I downloaded the source code and wanted to compile the file of scanner. It produces this error:
[meepo@localhost cs143-pp1]$ gcc -o lex.yy.o lex.yy.c -ll In file included from scanner.l:15:0: scanner.h:59:5: error: unknown type name ‘bool’ In file included from scanner.l:16:0: utility.h:64:38: error: unknown type name ‘bool’ utility.h:74:1: error: unknown type name ‘bool’ In file included from scanner.l:17:0: errors.h:16:18: fatal error: string: No such file or directory compilation terminated.
And I tried to use different complier to compile it, but it appeared different errors.
[meepo@localhost cs143-pp1]$ g++ -o scan lex.yy.c -ll /usr/bin/ld: cannot find -ll collect2: ld returned 1 exit status
My os is 3.0-ARCH, I don't know why this happened. How do I fix the error?
C90 does not support the boolean data type.
C99 does include it with this include:
#include <stdbool.h>
C99 does, if you have
#include <stdbool.h>
If the compiler does not support C99, you can define it yourself:
// file : myboolean.h #ifndef MYBOOLEAN_H #define MYBOOLEAN_H #define false 0 #define true 1 typedef int bool; // or #define bool int #endif
(but note that this definition changes ABI for bool
type so linking against external libraries which were compiled with properly defined bool
may cause hard-to-diagnose runtime errors).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With