构建NVDLA vp时的错误

1、make: * No rule to make target错误

make[4]: * No rule to make target ‘/home/chifred/NVDLA/NVDLA_debug/vp_large/libs/qbox/dtc/libfdt/fdt.c’, needed by ‘libfdt/fdt.o’。 停止。
Makefile:342: recipe for target ‘subdir-dtc’ failed

原因:git clone到本地库后,编译工程成功后,又修改了工程文件夹的名字,make命令在链接时,之前子模块生成的makefile里库文件和头文件的路径没有变动,它就会找不到编译目标。
解决:这时,make clean命令也没有用。根本办法是搜索target错误中源文件所在的文件夹,删除编译过程生成的obj文件夹,再删除CMakeCache.txt文件,重新cmake&&make。而我通过直接删除/vp/libs/qbox.build文件夹构建成功。

2、链接SystemC库错误

[ 86%] Linking CXX executable aarch64_toplevel
/home/chifred/NVDLA/hw/outdir/nv_full/cmod/release/lib/libnvdla_cmod.so: undefined reference to `sc_core::sc_vector_base::make_name(char const*, unsigned long)’
collect2: error: ld returned 1 exit status
CMakeFiles/aarch64_toplevel.dir/build.make:106: recipe for target ‘aarch64_toplevel’ failed
make[2]: * [aarch64_toplevel] Error 1
CMakeFiles/Makefile2:111: recipe for target ‘CMakeFiles/aarch64_toplevel.dir/all’ failed
make[1]: * [CMakeFiles/aarch64_toplevel.dir/all] Error 2
Makefile:138: recipe for target ‘all’ failed
make: * [all] Error 2

原因:libnvdla_cmod.so没有被链接,根源在于安装SystemC时出错。
解决:重装SystemC-2.3.0版本,安装过程如下:

$ wget -O systemc-2.3.0a.tar.gz http://www.accellera.org/images/downloads/standards/systemc/systemc-2.3.0a.tar.gz
$ tar -xzvf systemc-2.3.0a.tar.gz
$ cd systemc-2.3.0a
$ sudo mkdir -p /usr/local/systemc-2.3.0/
$ mkdir objdir
$ cd objdir
$ ../configure --prefix=/usr/local/systemc-2.3.0
$ make
$ sudo make install

你可能感兴趣的:(工具教程)