我開發了一個perl腳本來運行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";
}
這裏,$ variables指向SystemC和UVM-SystemC安裝的相應路徑。並且腳本期望* .cpp文件作爲參數到$ ARGV [0]兩個庫示例命令通過make check
正確運行,但腳本發出錯誤。詳細的錯誤日誌error.log
g ++ --version的輸出是g ++(Ubuntu 5.4.0-6ubuntu1〜16.04.1)5.4.0 20160609.在uvm-systemc庫配置日誌中使用了相同的g ++版本。 – MayurKubavat
SystemC庫怎麼樣?它是否編譯相同?如果您的可執行文件需要的庫已經使用gcc 4.x編譯,則可能存在ABI不兼容問題。您可以嘗試使用舊的ABI重新編譯可執行文件和uvm-systemc庫:將-D_GLIBCXX_USE_CXX11_ABI = 0添加到CXXFLAGS或g ++命令行。 –
它仍然給出相同的錯誤。並且在uvm-systemc/objdir中'make check'工作正常並且模擬所有的例子。唯一的問題是我無法用腳本運行它。 – MayurKubavat