다음 오류가 발생합니다. 오류 : <command-line> : 0 : 9
# 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
};
^
나는 제대로
frontend.h
에
}
폐쇄 이것을하지 않는 것이 생각했다. 따라서
vi
과
syntax on
을 사용하여 에있는 모든 대괄호
}
을 확인했지만 괜찮습니다. 나는 길을 잃고 어디를보아야할지 모르겠다. 자세한 정보가 필요하면 알려주십시오.
frontend.h
에서의 대응 위치는 다음
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,
================================ ===================
여기에 -E
옵션의 출력은 다음과 같습니다.
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 };
매크로 이름 충돌이있을 수 있습니다 - 선행 처리기를 통해 코드를 실행하여 현재 상황을 확인하십시오 ('g ++ -E ...'). –
@PaulR 단순히'g ++ -E -g3 -funroll-loops -fomit-frame-pointer -m32 -march = pentium3 ...'을 실행합니다. 나는 링커 경고를 받는다 :'g ++ : 경고 : femon.o : 링커 입력 파일은 링크가 완료되지 않았기 때문에 사용되지 않았다 .' – musbach
아마도'-o femon.o'에 남았을 것입니다 - 단지 전 처리기를 실행하기를 원합니다. 그러므로'g ++ -E .. 당신의 다른 옵션들이 ~ -o ... femon.c> femon.src'을 사용하고 나서 'femon.src'를보고 무슨 일이 일어나는지 보아라. (그냥 복사하여 명령 행에 붙여 넣기 만하면됩니다.) –