Hi guys,
I am trying to bring up the HLS edge detection design using Vitis HLS 2022.2 on ubuntu 22.04.02. I saw that there are some issues regarding the newer versions of HLS.
So far I believe I managed to synthesize the edge_detect core. I believe the vision library was added correctly with CFLAG (although I haven't tested it on an FPGA) but I keep having trouble with the simulation part. I tried using opencv 4.4.0 and 3.4.16 an I keep getting the same errors
INFO: [SIM 2] *************** CSIM start ***************
INFO: [SIM 4] CSIM will launch GCC as the compiler.
Compiling ../../../edge_d_test.cpp in debug mode
Compiling ../../../edge_detect.cpp in debug mode
Generating csim.exe
/emea/mediadata/opt/Xilinx/Vivado/2022.2/tps/lnx64/binutils-2.37/bin/ld: obj/edge_d_test.o: in function `main':
/media/data/work_sarpadi/HLS/edge_detection/edge_detect/solution1/csim/build/../../../edge_d_test.cpp:11: undefined reference to `cv::imread(cv::String const&, int)'
/emea/mediadata/opt/Xilinx/Vivado/2022.2/tps/lnx64/binutils-2.37/bin/ld: /media/data/work_sarpadi/HLS/edge_detection/edge_detect/solution1/csim/build/../../../edge_d_test.cpp:12: undefined reference to `cv::Mat::Mat(cv::Mat const&)'
/emea/mediadata/opt/Xilinx/Vivado/2022.2/tps/lnx64/binutils-2.37/bin/ld: /media/data/work_sarpadi/HLS/edge_detection/edge_detect/solution1/csim/build/../../../edge_d_test.cpp:15: undefined reference to `cv::Mat::Mat()'
/emea/mediadata/opt/Xilinx/Vivado/2022.2/tps/lnx64/binutils-2.37/bin/ld: /media/data/work_sarpadi/HLS/edge_detection/edge_detect/solution1/csim/build/../../../edge_d_test.cpp:15: undefined reference to `cv::Mat::Mat()'
/emea/mediadata/opt/Xilinx/Vivado/2022.2/tps/lnx64/binutils-2.37/bin/ld: /media/data/work_sarpadi/HLS/edge_detection/edge_detect/solution1/csim/build/../../../edge_d_test.cpp:15: undefined reference to `cv::Mat::Mat()'
/emea/mediadata/opt/Xilinx/Vivado/2022.2/tps/lnx64/binutils-2.37/bin/ld: /media/data/work_sarpadi/HLS/edge_detection/edge_detect/solution1/csim/build/../../../edge_d_test.cpp:15: undefined reference to `cv::Mat::Mat()'
/emea/mediadata/opt/Xilinx/Vivado/2022.2/tps/lnx64/binutils-2.37/bin/ld: /media/data/work_sarpadi/HLS/edge_detection/edge_detect/solution1/csim/build/../../../edge_d_test.cpp:15: undefined reference to `cv::Mat::Mat()'
/emea/mediadata/opt/Xilinx/Vivado/2022.2/tps/lnx64/binutils-2.37/bin/ld: /media/data/work_sarpadi/HLS/edge_detection/edge_detect/solution1/csim/build/../../../edge_d_test.cpp:16: undefined reference to `cv::cvtColor(cv::_InputArray const&, cv::_OutputArray const&, int, int)'
/emea/mediadata/opt/Xilinx/Vivado/2022.2/tps/lnx64/binutils-2.37/bin/ld: /media/data/work_sarpadi/HLS/edge_detection/edge_detect/solution1/csim/build/../../../edge_d_test.cpp:17: undefined reference to `cv::Sobel(cv::_InputArray const&, cv::_OutputArray const&, int, int, int, int, double, double, int)'
/emea/mediadata/opt/Xilinx/Vivado/2022.2/tps/lnx64/binutils-2.37/bin/ld: /media/data/work_sarpadi/HLS/edge_detection/edge_detect/solution1/csim/build/../../../edge_d_test.cpp:18: undefined reference to `cv::Sobel(cv::_InputArray const&, cv::_OutputArray const&, int, int, int, int, double, double, int)'
/emea/mediadata/opt/Xilinx/Vivado/2022.2/tps/lnx64/binutils-2.37/bin/ld: /media/data/work_sarpadi/HLS/edge_detection/edge_detect/solution1/csim/build/../../../edge_d_test.cpp:19: undefined reference to `cv::convertScaleAbs(cv::_InputArray const&, cv::_OutputArray const&, double, double)'
/emea/mediadata/opt/Xilinx/Vivado/2022.2/tps/lnx64/binutils-2.37/bin/ld: /media/data/work_sarpadi/HLS/edge_detection/edge_detect/solution1/csim/build/../../../edge_d_test.cpp:20: undefined reference to `cv::convertScaleAbs(cv::_InputArray const&, cv::_OutputArray const&, double, double)'
/emea/mediadata/opt/Xilinx/Vivado/2022.2/tps/lnx64/binutils-2.37/bin/ld: /media/data/work_sarpadi/HLS/edge_detection/edge_detect/solution1/csim/build/../../../edge_d_test.cpp:21: undefined reference to `cv::imwrite(cv::String const&, cv::_InputArray const&, std::vector<int, std::allocator<int> > const&)'
/emea/mediadata/opt/Xilinx/Vivado/2022.2/tps/lnx64/binutils-2.37/bin/ld: /media/data/work_sarpadi/HLS/edge_detection/edge_detect/solution1/csim/build/../../../edge_d_test.cpp:22: undefined reference to `cv::imwrite(cv::String const&, cv::_InputArray const&, std::vector<int, std::allocator<int> > const&)'
/emea/mediadata/opt/Xilinx/Vivado/2022.2/tps/lnx64/binutils-2.37/bin/ld: /media/data/work_sarpadi/HLS/edge_detection/edge_detect/solution1/csim/build/../../../edge_d_test.cpp:38: undefined reference to `cv::imwrite(cv::String const&, cv::_InputArray const&, std::vector<int, std::allocator<int> > const&)'
/emea/mediadata/opt/Xilinx/Vivado/2022.2/tps/lnx64/binutils-2.37/bin/ld: /media/data/work_sarpadi/HLS/edge_detection/edge_detect/solution1/csim/build/../../../edge_d_test.cpp:41: undefined reference to `cv::imwrite(cv::String const&, cv::_InputArray const&, std::vector<int, std::allocator<int> > const&)'
/emea/mediadata/opt/Xilinx/Vivado/2022.2/tps/lnx64/binutils-2.37/bin/ld: /media/data/work_sarpadi/HLS/edge_detection/edge_detect/solution1/csim/build/../../../edge_d_test.cpp:15: undefined reference to `cv::Mat::~Mat()'
/emea/mediadata/opt/Xilinx/Vivado/2022.2/tps/lnx64/binutils-2.37/bin/ld: /media/data/work_sarpadi/HLS/edge_detection/edge_detect/solution1/csim/build/../../../edge_d_test.cpp:15: undefined reference to `cv::Mat::~Mat()'
/emea/mediadata/opt/Xilinx/Vivado/2022.2/tps/lnx64/binutils-2.37/bin/ld: /media/data/work_sarpadi/HLS/edge_detection/edge_detect/solution1/csim/build/../../../edge_d_test.cpp:15: undefined reference to `cv::Mat::~Mat()'
/emea/mediadata/opt/Xilinx/Vivado/2022.2/tps/lnx64/binutils-2.37/bin/ld: /media/data/work_sarpadi/HLS/edge_detection/edge_detect/solution1/csim/build/../../../edge_d_test.cpp:15: undefined reference to `cv::Mat::~Mat()'
/emea/mediadata/opt/Xilinx/Vivado/2022.2/tps/lnx64/binutils-2.37/bin/ld: /media/data/work_sarpadi/HLS/edge_detection/edge_detect/solution1/csim/build/../../../edge_d_test.cpp:15: undefined reference to `cv::Mat::~Mat()'
/emea/mediadata/opt/Xilinx/Vivado/2022.2/tps/lnx64/binutils-2.37/bin/ld: obj/edge_d_test.o:/media/data/work_sarpadi/HLS/edge_detection/edge_detect/solution1/csim/build/../../../edge_d_test.cpp:12: more undefined references to `cv::Mat::~Mat()' follow
/emea/mediadata/opt/Xilinx/Vivado/2022.2/tps/lnx64/binutils-2.37/bin/ld: obj/edge_d_test.o: in function `cv::String::String(char const*)':
/usr/local/include/opencv2/core/cvstd.hpp:602: undefined reference to `cv::String::allocate(unsigned long)'
/emea/mediadata/opt/Xilinx/Vivado/2022.2/tps/lnx64/binutils-2.37/bin/ld: obj/edge_d_test.o: in function `cv::String::~String()':
/usr/local/include/opencv2/core/cvstd.hpp:648: undefined reference to `cv::String::deallocate()'
collect2: error: ld returned 1 exit status
make: *** [Makefile.rules:323: csim.exe] Error 1
ERR: [SIM 100] 'csim_design' failed: compilation error(s).
INFO: [SIM 3] *************** CSIM finish ***************
Has anybody seen these error before? Did anyone manage to run the simulation on the core? Any help would be useful at this point.
thanks,
Sergiu