我试图为基于ARM的Zynq板编译一个OpenCV程序。如果程序不调用lib函数,则只需引用包含变量即可。当调用imread
函数时,它失败。尽管库位于/usr/lib
使用的编译命令为:
g++ -Wno-psabi -lopencv_core -lopencv_highgui -lpthread -lrt -ldl -o test-read test-read.cpp
编译器给出的错误是:
/tmp/ccmWn0o7.o: In function `main':
test-read.cpp:(.text+0x78): undefined reference to `cv::imread(std::basic_string<char, std::char_t'
/tmp/ccmWn0o7.o: In function `cv::Mat::~Mat()':
test-read.cpp:(.text._ZN2cv3MatD2Ev[_ZN2cv3MatD5Ev]+0x22): undefined reference to `cv::fastFree(vo'
/tmp/ccmWn0o7.o: In function `cv::Mat::release()':
test-read.cpp:(.text._ZN2cv3Mat7releaseEv[cv::Mat::release()]+0x34): undefined reference to `cv::M'
collect2: ld returned 1 exit status
我尝试过在PC上直接在Zynq板上进行交叉编译。静态编译和动态编译都给我一个相同的错误,undefined reference to cv::imread
错误。
希望弄清楚为什么会出现此错误,因为许多开发人员没有遇到这样的错误,相反,他们都经历了。
非常感谢您!