UVM-SystemC 库 'make check' 错误
UVM-SystemC library 'make check' error
我在 uvm-systemc-1.0-alpha1 库的 objdir 中的 make check
中遇到以下错误。
../configure
make
make install
命令工作正常。另外,我已经安装了 SystemC-2.3.1,它工作正常。来自 make check
makecheck.log
的详细日志
CXXLD simple/callbacks/basic/test
../../src/uvmsc/.libs/libuvm-systemc.so: undefined reference to `sc_core::sc_time::to_string[abi:cxx11]() const'
../../src/uvmsc/.libs/libuvm-systemc.so: undefined reference to `sc_dt::convert_to_fmt(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, sc_dt::sc_numrep, bool)'
../../src/uvmsc/.libs/libuvm-systemc.so: undefined reference to `sc_dt::sc_uint_base::to_string[abi:cxx11](sc_dt::sc_numrep, bool) const'
../../src/uvmsc/.libs/libuvm-systemc.so: undefined reference to `sc_dt::sc_uint_base::to_string[abi:cxx11](sc_dt::sc_numrep) const'
collect2: error: ld returned 1 exit status
Makefile:1064: recipe for target 'simple/callbacks/basic/test' failed
make[3]: *** [simple/callbacks/basic/test] Error 1
make[3]: Leaving directory '/home/mayur/DV/SystemC/uvm-systemc-1.0/objdir/examples/uvmsc'
Makefile:1637: recipe for target 'check-am' failed
make[2]: *** [check-am] Error 2
make[2]: Leaving directory '/home/mayur/DV/SystemC/uvm-systemc-1.0/objdir/examples/uvmsc'
Makefile:310: recipe for target 'check-recursive' failed
make[1]: *** [check-recursive] Error 1
make[1]: Leaving directory '/home/mayur/DV/SystemC/uvm-systemc-1.0/objdir/examples'
Makefile:341: recipe for target 'check-recursive' failed
make: *** [check-recursive] Error 1
看起来链接器无法找到与 SystemC 相关的变量。这可能是因为调用检查相关测试用例的 uvm-systemc-1.0-alpha 脚本无法使用您的 SystemC-2.3.1 的路径。
重新运行 configure
系统中的 SystemC-2.3.1 路径。
../configure --with-systemc=/path/to/your/systemc-2.3.1
e.g.
../configure --with-systemc=/home/mayur/DV/SystemC/SystemC-2.3.1
您的 uvm-systemc-1.0/ 中的 文件 INSTALL
包含所需的说明。
重新运行 脚本确保在 objdir/Makefile
中将以下变量设置为您的 SystemC-2.3.1 库路径。
SYSTEMC_CFLAGS = -I<your path>/systemc-2.3.1/include
SYSTEMC_LIBS = -L<your path>/systemc-2.3.1/lib -lsystemc
我在 uvm-systemc-1.0-alpha1 库的 objdir 中的 make check
中遇到以下错误。
../configure
make
make install
命令工作正常。另外,我已经安装了 SystemC-2.3.1,它工作正常。来自 make check
makecheck.log
CXXLD simple/callbacks/basic/test
../../src/uvmsc/.libs/libuvm-systemc.so: undefined reference to `sc_core::sc_time::to_string[abi:cxx11]() const'
../../src/uvmsc/.libs/libuvm-systemc.so: undefined reference to `sc_dt::convert_to_fmt(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, sc_dt::sc_numrep, bool)'
../../src/uvmsc/.libs/libuvm-systemc.so: undefined reference to `sc_dt::sc_uint_base::to_string[abi:cxx11](sc_dt::sc_numrep, bool) const'
../../src/uvmsc/.libs/libuvm-systemc.so: undefined reference to `sc_dt::sc_uint_base::to_string[abi:cxx11](sc_dt::sc_numrep) const'
collect2: error: ld returned 1 exit status
Makefile:1064: recipe for target 'simple/callbacks/basic/test' failed
make[3]: *** [simple/callbacks/basic/test] Error 1
make[3]: Leaving directory '/home/mayur/DV/SystemC/uvm-systemc-1.0/objdir/examples/uvmsc'
Makefile:1637: recipe for target 'check-am' failed
make[2]: *** [check-am] Error 2
make[2]: Leaving directory '/home/mayur/DV/SystemC/uvm-systemc-1.0/objdir/examples/uvmsc'
Makefile:310: recipe for target 'check-recursive' failed
make[1]: *** [check-recursive] Error 1
make[1]: Leaving directory '/home/mayur/DV/SystemC/uvm-systemc-1.0/objdir/examples'
Makefile:341: recipe for target 'check-recursive' failed
make: *** [check-recursive] Error 1
看起来链接器无法找到与 SystemC 相关的变量。这可能是因为调用检查相关测试用例的 uvm-systemc-1.0-alpha 脚本无法使用您的 SystemC-2.3.1 的路径。
重新运行 configure
系统中的 SystemC-2.3.1 路径。
../configure --with-systemc=/path/to/your/systemc-2.3.1
e.g.
../configure --with-systemc=/home/mayur/DV/SystemC/SystemC-2.3.1
您的 uvm-systemc-1.0/ 中的 文件 INSTALL
包含所需的说明。
重新运行 脚本确保在 objdir/Makefile
中将以下变量设置为您的 SystemC-2.3.1 库路径。
SYSTEMC_CFLAGS = -I<your path>/systemc-2.3.1/include
SYSTEMC_LIBS = -L<your path>/systemc-2.3.1/lib -lsystemc