musbach
musbach

Reputation: 638

Error: <command-line>:0:9

I get the following error.

# make clean && make all
g++ -g3 -funroll-loops -fomit-frame-pointer -m32 -march=pentium3 -mmmx -msse -mfpmath=sse -Wall -Woverloaded-virtual  -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -g3 -g -c -DSYS_DAB=0 -DDVBAPI_V5 -DNEW_FFMPEG -DDEBUG -DREELVDR -DUSE_PIP -DUSEMYSQL -DDEVICE_ATTRIBUTES -DUSE_CRASHLOG -DUSE_JUMPPLAY -DUSE_LIEMIEXT -DUSE_MCLI -DUSE_PLUGINMISSING -DUSE_SETUP -DUSE_YAEPG -DUSE_BOUQUETS -DUSE_DELAYED_TRICKMODE -DUSE_LIVEBUFFER -DUSE_TINYXML -D_GNU_SOURCE -D_LARGEFILE_SOURCE -D_USE_GRAPHTFT -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -DAPIVERSNUM=20200 -DDEBUG -DREELVDR -DPLUGIN_NAME='"femon"' -DPLUGIN_NAME_I18N='"femon"' -I./include -I../../../vdr/include -I../../../vdr/include -I/usr/src/linux-headers-4.4.0-47-generic/include/config/dvb/include -I../../../vdr/../tinyxml -I../../../vdr -I../..//usr/src/linux-headers-4.4.0-47-generic/include/config/dvb/include -o femon.o femon.c
<command-line>:0:9: error: expected identifier before numeric constant
<command-line>:0:9: error: expected ‘}’ before numeric constant
<command-line>:0:9: error: expected unqualified-id before numeric constant
In file included from ../../../vdr/include/vdr/dvbdevice.h:13:0,
                 from ../../../vdr/include/vdr/menuitems.h:14,
                 from ../../../vdr/include/vdr/menu.h:18,
                 from femon.c:16:
/usr/include/linux/dvb/frontend.h:345:1: error: expected declaration before ‘}’ token
 };
 ^

I thought that this a not properly closed } in frontend.h. Therefore I checked all brackets } in frontend.h with vi and syntax on but they are ok. I am lost and I don’t know where to look at. Please let me know, if you need more information.

The corresponding place in frontend.h is:

312 enum fe_pilot {
313         PILOT_ON,
314         PILOT_OFF,
315         PILOT_AUTO,
316 };
317
318 enum fe_rolloff {
319         ROLLOFF_35, /* Implied value in DVB-S, default for DVB-S2 */
320         ROLLOFF_20,
321         ROLLOFF_25,
322         ROLLOFF_AUTO,
323 };
324
325 enum fe_delivery_system {
326         SYS_UNDEFINED,
327         SYS_DVBC_ANNEX_A,
328         SYS_DVBC_ANNEX_B,
329         SYS_DVBT,
330         SYS_DSS,
331         SYS_DVBS,
332         SYS_DVBS2,
333         SYS_DVBH,
334         SYS_ISDBT,
335         SYS_ISDBS,
336         SYS_ISDBC,
337         SYS_ATSC,
338         SYS_ATSCMH,
339         SYS_DTMB,
340         SYS_CMMB,
341         SYS_DAB,
342         SYS_DVBT2,
343         SYS_TURBO,
344         SYS_DVBC_ANNEX_C,
345 };
346
347 /* backward compatibility */
348 #define SYS_DVBC_ANNEX_AC       SYS_DVBC_ANNEX_A
349 #define SYS_DMBTH SYS_DTMB /* DMB-TH is legacy name, use DTMB instead */
350
351 /* ATSC-MH */
352
353 enum atscmh_sccc_block_mode {
354         ATSCMH_SCCC_BLK_SEP      = 0,
355         ATSCMH_SCCC_BLK_COMB     = 1,
356         ATSCMH_SCCC_BLK_RES      = 2,
357 };
358
359 enum atscmh_sccc_code_mode {
360         ATSCMH_SCCC_CODE_HLF     = 0,

===================================================================

Here is the output of the -E option:

36348 enum fe_delivery_system {
36349  SYS_UNDEFINED,
36350  SYS_DVBC_ANNEX_A,
36351  SYS_DVBC_ANNEX_B,
36352  SYS_DVBT,
36353  SYS_DSS,
36354  SYS_DVBS,
36355  SYS_DVBS2,
36356  SYS_DVBH,
36357  SYS_ISDBT,
36358  SYS_ISDBS,
36359  SYS_ISDBC,
36360  SYS_ATSC,
36361  SYS_ATSCMH,
36362  SYS_DTMB,
36363  SYS_CMMB,
36364
36365 # 341 "/usr/include/linux/dvb/frontend.h"
36366 0
36367 # 341 "/usr/include/linux/dvb/frontend.h" 3 4
36368        ,
36369  SYS_DVBT2,
36370  SYS_TURBO,
36371  SYS_DVBC_ANNEX_C,
36372 };

Upvotes: 1

Views: 1249

Answers (1)

Paul R
Paul R

Reputation: 213060

You have a conflict with the symbol SYS_DAB. You're defining this as a macro with value 0 on the command line (-DSYS_DAB=0), so when the compiler gets to the enum definition for fe_delivery_system it sees 0 where it should see SYS_DAB.

It's likely that this symbol is being used for two different purposes, so you will probably need to rename one of them - whichever one is used least you could rename to e.g. SYS_DAB_, or something equally creative.

Upvotes: 1

Related Questions