【发布时间】:2017-02-09 23:52:46
【问题描述】:
我已经使用 Homebrew 安装了 dlib。
brew install dlib
如何在 Xcode 中创建使用 dlib 的 C++ 项目?我尝试了一些构建设置。但是,它不起作用。
- 将
/usr/local/Cellar/dlib/19.1_2/include添加到标题搜索路径 - 将
/usr/local/Cellar/dlib/19.1_2/lib添加到库搜索路径 - 将
-ldlib添加到其他链接器标志
我遇到了这些错误:
Undefined symbols for architecture x86_64:
"_cblas_dgemm", referenced from:
dlib::blas_bindings::cblas_gemm(dlib::blas_bindings::CBLAS_ORDER, dlib::blas_bindings::CBLAS_TRANSPOSE, dlib::blas_bindings::CBLAS_TRANSPOSE, int, int, int, double, double const*, int, double const*, int, double, double*, int) in main.o
"_cblas_saxpy", referenced from:
dlib::blas_bindings::cblas_axpy(int, float, float const*, int, float*, int) in main.o
"_cblas_sscal", referenced from:
dlib::blas_bindings::cblas_scal(int, float, float*) in main.o
"_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
clang: error: 链接器命令失败,退出代码为 1(使用 -v 查看调用)
【问题讨论】:
-
你试过从源代码编译它吗?
-
@Evgeniy 是的,我试过了。我得到了同样的结果。我发现 dlib 在编译我的程序时试图访问 BLAS。它在 macOS 上的 Accelerate.framework 中提供。将该框架添加到项目后,问题已解决。
-
我遇到了同样的问题。不过,我正在尝试使用 cmake 通过命令行进行编译。你不会知道如何将它添加到 cmake 文件中吧?
-
首先,你需要找出Accelerate.framework在哪里。然后,您可以将其添加到 cmake 文件中。但是,我不知道如何添加它。我对cmake不太熟悉。或者,您可以使用 OpenBLAS 库。但是,我从未尝试过。
-
@fivetech 那么,你解决了这个问题吗?如果是的话,你能写个小指南吗?
标签: c++ xcode build compiler-errors dlib