还是OPENCV编译出错,arm版本,出现错误

错误如下:
Linking CXX static library ../../lib/libopencv_haartraining_engine.a
[ 82%] Built target opencv_haartraining_engine
Scanning dependencies of target opencv_createsamples
[ 82%] Building CXX object modules/haartraining/CMakeFiles/opencv_createsamples.dir/createsamples.obj
Linking CXX executable ../../bin/opencv_createsamples
../../lib/libopencv_haartraining_engine.a(cvsamples.obj):在函数‘cvWarpPerspective(void*, void*, double (*) [2])’中:
cvsamples.cpp:(.text._Z17cvWarpPerspectivePvS_PA2_d+0x674):对‘lrint’未定义的引用
cvsamples.cpp:(.text._Z17cvWarpPerspectivePvS_PA2_d+0x68c):对‘lrint’未定义的引用
cvsamples.cpp:(.text._Z17cvWarpPerspectivePvS_PA2_d+0x69c):对‘lrint’未定义的引用
cvsamples.cpp:(.text._Z17cvWarpPerspectivePvS_PA2_d+0x6bc):对‘lrint’未定义的引用
cvsamples.cpp:(.text._Z17cvWarpPerspectivePvS_PA2_d+0x734):对‘lrint’未定义的引用
../../lib/libopencv_haartraining_engine.a(cvsamples.obj):cvsamples.cpp:(.text._Z17cvWarpPerspectivePvS_PA2_d+0x74c): more undefined references to `lrint' follow
collect2: ld returned 1 exit status
make[2]: *** [bin/opencv_createsamples] 错误 1
make[1]: *** [modules/haartraining/CMakeFiles/opencv_createsamples.dir/all] 错误 2
make: *** [all] 错误 2

1个回答

http://www.cplusplus.com/reference/cmath/lrint/

怀疑是arm上库没有lrint对应的定义

jeepxiaozi
一把汤勺 还有一个办法就是如果已经采用了Linux系统的嵌入式ARM开发板的话,而且是在OpenCV的基础上开发应用的话可以考虑用BusyBox直接安装适合嵌入式ARM版本的OpenCV,不必非要手动编译的
接近 5 年之前 回复
jeepxiaozi
一把汤勺 先看看你的板子上的工具啥的能不能升级,一般的嵌入式开发板只要装了Linux大多数都是可以升级的,另外看到你说gcc版本是3.4.3,未免有点儿老了,试试能不能升级一下
接近 5 年之前 回复
kxc0720
joekuang 回复oyljerry: 自己在math.h文件里面实现这个函数是吧?
接近 5 年之前 回复
oyljerry
oyljerry 回复kxc0720: 不支持,那么就要你自己实现这个函数了
接近 5 年之前 回复
kxc0720
joekuang 我使用的是gcc 3.4.3 这个是板子提供商的官方工具。我查了下,这个版本是05年的,好像不支持lrint。是不是要自己定义这个函数才行?
接近 5 年之前 回复
kxc0720
joekuang 我使用的是gcc 3.4.3 这个是板子提供商的官方工具。我查了下,这个版本是05年的,好像不支持lrint。是不是要自己定义这个函数才行?
接近 5 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问