2017-11-17 13 views
0

Vivado HLS가 kubuntu 17.10에서 c 테스트 벤치 코드를 컴파일하지 못했습니다. 동일한 프로젝트가 Windows 10에서 완벽하게 컴파일됩니다. 쿠분투와 Windows에서 솔루션은 합성되지만 우분투에서는 시뮬레이션 만 실패합니다.Vivado HLS 2017.3 우분투의 csim 오류 17.10

로그 파일에서 필자는 vivado의 gcc4.6.3을 시스템 gcc 라이브러리와 함께 사용한다고 생각합니다. 누군가이 문제를 피할 수있게 도와 줄 수 있습니까?

감사

INFO: [SIM 2] *************** CSIM start *************** 
INFO: [SIM 4] CSIM will launch GCC as the compiler. 
    Compiling(apcc) ../../../Source/circuito_tb.c in debug mode 
INFO: [HLS 200-10] Running '/opt/Xilinx/Vivado/2017.3/bin/unwrapped/lnx64.o/apcc' 
INFO: [HLS 200-10] For user 'ernesto' on host 'eco-laptop' (Linux_x86_64 version 4.13.0-16-generic) on Fri Nov 17 16:32:27 CET 2017 
INFO: [HLS 200-10] On os Ubuntu 17.10 
INFO: [HLS 200-10] In directory '/home/ernesto/home/uc3m/asignaturas/SubsistemasAD/VivadoHLS_Homework/CruzOliveraErnesto_VivadoHLS_Homework/default/csim/build' 
ERROR: [APCC 202-3] Gcc Compile failed: 
In file included from /opt/Xilinx/Vivado/2017.3/lnx64/tools/gcc/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.6.3/include-fixed/features.h:339:0, 
       from /usr/include/setjmp.h:25, 
       from /tmp/apcc_db_ernesto/185171510932747310469/circuito_tb.c:3: 
/usr/include/x86_64-linux-gnu/sys/cdefs.h:459:49: error: missing binary operator before token "(" 
In file included from /opt/Xilinx/Vivado/2017.3/lnx64/tools/gcc/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.6.3/include-fixed/limits.h:169:0, 
       from /opt/Xilinx/Vivado/2017.3/lnx64/tools/gcc/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.6.3/include-fixed/syslimits.h:7, 
       from /opt/Xilinx/Vivado/2017.3/lnx64/tools/gcc/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.6.3/include-fixed/limits.h:34, 
       from /tmp/apcc_db_ernesto/185171510932747310469/circuito_tb.c:4: 
/usr/include/limits.h:145:17: error: missing binary operator before token "(" 
In file included from /tmp/apcc_db_ernesto/185171510932747310469/circuito_tb.c:12:0: 
/usr/include/stdio.h:276:43: error: missing binary operator before token "(" 
/usr/include/stdio.h:349:17: error: missing binary operator before token "(" 
/usr/include/stdio.h:567:17: error: missing binary operator before token "(" 
/usr/include/stdio.h:592:43: error: missing binary operator before token "(" 
In file included from /tmp/apcc_db_ernesto/185171510932747310469/circuito_tb.c:13:0: 
/usr/include/string.h:164:21: error: missing binary operator before token "(" 
/usr/include/string.h:173:43: error: missing binary operator before token "(" 
In file included from /tmp/apcc_db_ernesto/185171510932747310469/circuito_tb.c:14:0: 
/usr/include/stdlib.h:131:36: error: missing binary operator before token "(" 
/usr/include/stdlib.h:174:17: error: missing binary operator before token "(" 
/usr/include/stdlib.h:188:36: error: missing binary operator before token "(" 
In file included from /tmp/apcc_db_ernesto/185171510932747310469/circuito_tb.c:15:0: 
/usr/include/math.h:44:36: error: missing binary operator before token "(" 
/usr/include/math.h:59:17: error: missing binary operator before token "(" 
/usr/include/math.h:67:36: error: missing binary operator before token "(" 
In file included from /tmp/apcc_db_ernesto/185171510932747310469/circuito_tb.c:15:0: 
/usr/include/math.h:137:17: error: missing binary operator before token "(" 
In file included from /tmp/apcc_db_ernesto/185171510932747310469/circuito_tb.c:15:0: 
/usr/include/math.h:169:17: error: missing binary operator before token "(" 
In file included from /usr/include/math.h:224:0, 
       from /tmp/apcc_db_ernesto/185171510932747310469/circuito_tb.c:15: 
/usr/include/x86_64-linux-gnu/bits/mathcalls.h:112:17: error: missing binary operator before token "(" 
/usr/include/x86_64-linux-gnu/bits/mathcalls.h:289:17: error: missing binary operator before token "(" 
/usr/include/x86_64-linux-gnu/bits/mathcalls.h:344:17: error: missing binary operator before token "(" 
In file included from /tmp/apcc_db_ernesto/185171510932747310469/circuito_tb.c:15:0: 
/usr/include/math.h:314:18: error: missing binary operator before token "(" 
/usr/include/math.h:479:17: error: missing binary operator before token "(" 
/usr/include/math.h:826:17: error: missing binary operator before token "(" 
ERROR: [APCC 202-3] Tmp directory is /tmp/apcc_db_ernesto/185171510932747310469 
ERROR: [APCC 202-1] APCC failed. 
csim.mk:79: recipe for target 'obj/circuito_tb.o' failed 
make: *** [obj/circuito_tb.o] Error 1 
CRITICAL WARNING: [SIM 100] 'csim_design' failed: compilation error(s). 
INFO: [SIM 3] *************** CSIM finish *************** 

답변

0

Vivado HLS는 다소 오래된 gcc 버전이 함께 제공됩니다, 그 헤더는 시스템의과 일치하지 않습니다. 나를 위해, 내가 glibc를 버전 2.26으로 업그레이드했을 때 일어났다.

시스템의 glibc을 다운 그레이드하는 것은 위험 할 수 있습니다. 가장 안전한 해결 방법은 자일링스 업데이트 번들 gcc까지 clang으로 전환하는 것입니다. 이 옵션은 Project ->Project Settings ->Simulation ->Compiler에서 찾을 수 있습니다.

clang이 아직 컴퓨터에 설치되어 있지 않으면 sudo apt-get install clang이 작업을 수행해야합니다.

+0

답장을 보내 주셔서 감사합니다. 우분투 16.04.3을 설치 했으므로 GCC와 Clang과 완벽하게 작동합니다. – ECO