我尝试在OS X的Qt项目中使用dlib。因此,在此尝试中,我做了以下工作:
在dlib根目录中:
cd examples
mkdir build
cd build
cmake ..
cmake --build . --config Release
在dlib根目录中:
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/Users/user/dlib_build
cmake --build . --config Release --target install
。轮廓:
INCLUDEPATH += /Users/user/dlib_build/include
LIBS += -L/Users/user/dlib_build/lib
LIBS += -ldlib
main.cpp:
//...
frontal_face_detector detector = get_frontal_face_detector();
//...
编译输出:
Undefined symbols for architecture x86_64:
"_dgesvd_", referenced from:
dlib::lapack::binding::gesvd(char, char, int, int, double*, int, double*, double*, int, double*, int, double*, int) in main.o
ld: symbol(s) not found for architecture x86_64
如何解决此问题,并在OS X上将dlib与Qt一起使用?
正确的解决方案是添加缺少的库以进行链接。构建Dlib时-它找到了一些BLAS库并启用了BLAS支持。要找到该库,请查看位于/ Users / user / dlib_build / lib / pkgconfig的dlib的pkgconfig文件,它的行类似于“库:-L $ {libdir} -ldlib” Qt不会管理此类文件依赖项自动生成,因此您应该手动添加blas库
另一种(简单的)解决方案是在不支持BLAS / LAPACK的情况下构建dlib:在dlib根目录中:
mkdir build
cd build
cmake .. -DDLIB_USE_BLAS=OFF -DDLIB_USE_LAPACK=OFF -DCMAKE_INSTALL_PREFIX=/Users/user/dlib_build
cmake --build . --config Release --target install
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句