UVM-SystemC 예제 코드를 실행하기위한 펄 스크립트를 개발했습니다.UVM-SystemC 예제 실행 스크립트가 작동하지 않습니다.
#!/usr/bin/perl
use warnings;
use strict;
sub main();
my $CLIBS = "\$SYSTEMC_HOME/lib-linux64";
my $UVMCLIBS = "\$UVMSYSTEMC_HOME/lib-linux64";
my $CINC = "\$SYSTEMC_HOME/include";
my $UVMCINC = "\$UVMSYSTEMC_HOME/include";
main();
sub main(){
eval{
$ARGV[0];
}or do{
print("\n\tRun the script with SystemC <filename> as argument\n\n");
exit 1;
};
system "g++ -I$CINC -I$UVMCINC -L$CLIBS -lsystemc -L$UVMCLIBS -luvm-systemc $ARGV[0] -Wl,-rpath,$CLIBS -Wl,-rpath,$UVMCLIBS";
#system "./sim";
}
여기에서 $ 변수는 SystemC 및 UVM-SystemC 설치 경로를 나타냅니다. 그리고 스크립트는 $ ARGV [0]의 인수로 * .cpp 파일을 기대합니다. 두 라이브러리 예제는 모두 make check
에 의해 제대로 실행되지만 스크립트는 오류를 발생시킵니다. 자세한 오류 로그 error.log
출력 g ++ --version IS g ++ (우분투 5.4.0-6ubuntu1 ~ 16.04.1) 같은 g ++ 버전을 사용하는 UVM-SystemC를 라이브러리 설정 로그에서 5.4.0 20160609.. – MayurKubavat
SystemC 라이브러리는 어떻습니까? 그것은 동일하게 컴파일됩니까? 실행 파일에 필요한 라이브러리가 gcc 4.x로 컴파일 된 경우 ABI 비 호환성이있을 수 있습니다. 이전 ABI를 사용하여 실행 파일 및 uvm-systemc lib를 다시 컴파일 할 수 있습니다. -D_GLIBCXX_USE_CXX11_ABI = 0을 CXXFLAGS 또는 g ++ 명령 줄에 추가합니다. –
여전히 같은 오류가 발생합니다. uvm-systemc/objdir에서 'make check'가 잘 작동하고 모든 예제를 시뮬레이트합니다. 단 한가지는 스크립트로 실행할 수 없다는 것입니다. – MayurKubavat