6
Próbuję skompilować program (który nie pisałem) i pojawia się następujący błąd:Co oznacza "#elif bez wyrażenia"?
C read.c ...
In file included from read.c:6:0:
def.h:6:6: error: #elif with no expression
make: *** [read.o] Error 1
Plik def.h
wygląda tak:
#ifndef TRACE_DEF
#define TRACE_DEF
#ifndef L
#define L 152064 /* (352 * 288 * 1.5) */
#elif
#error "L defined elsewhere"
#endif
#ifndef MIN
#define MIN(a, b) ((a) < (b) ? (a) : (b))
#endif
#ifndef MAX
#define MAX(a, b) ((a) > (b) ? (a) : (b))
#endif
Linia 6 jest linia tylko przed#error "L defined elsewhere"
.
kompilator:
$ gcc --version
gcc-4.6.real (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
Copyright (C) 2011 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Jakieś pomysły jak to naprawić?
Czy jesteś pewien? Pobrałem z publicznego repozytorium – user000001
@ user000001: Jestem tego całkiem pewien. Możliwe jednak, że kompilator używany przez ludzi interpretuje puste wyrażenie jako '0', co nie spowodowałoby nigdy kompilacji danego segmentu. Ale to wygląda jak literówka. – Zeta
Próbowałem go i wydaje się działać. Thanx! – user000001