为了安装dlib,我遵循了本教程:http://www.pyimagesearch.com/2017/03/27/how-to-install-dlib/。 我使用的是Mac OS X 10.12.5并使用Python 3.5。 我跑
$ brew install cmake
$ brew install boost
$ brew install boost-python --with-python3
它可以正常工作,没有任何错误。
但是当我尝试使用 pip 安装 dlib 时,请安装 dlib。我有一个错误:
The C compiler
"/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc"
is not able to compile a simple test program.
error: cmake configuration failed
ld: can't map file, errno=22 file '/usr/local/opt/qt/lib' for architecture x86_64
有关完整错误,请参阅此链接(不想粘贴完整错误(: https://gist.github.com/alexattia/3e98685310d90b65031db640d3ea716a
回溯错误后,当我尝试手动制作 dlib 时,我有这个:
Linking C executable cmTC_05e45
/usr/local/Cellar/cmake/3.8.2/bin/cmake -E cmake_link_script
CMakeFiles/cmTC_05e45.dir/link.txt --verbose=1
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc
-Wl,-search_paths_first -Wl,-headerpad_max_install_names
/usr/local/opt/qt/lib CMakeFiles/cmTC_05e45.dir/testCCompiler.c.o -o
cmTC_05e45
对于完整的跟踪,请展开:https://gist.github.com/alexattia/1e54ffb87c9eb4c811033f5cadd90331
我重新安装了XCode(来自Apple Store(和CMake(来自下载页面的3.8.2(,我什至安装了Qt Creator以获得干净的Qt版本,但我仍然有同样的错误。
我尝试使用 conda 安装它,但在安装后,我仍然没有 python 中的模块。
非常感谢您的任何帮助。
你评论说:
事实上,在我的.bash_profile中,我导出了LDFLAGS="/usr/local/opt/qt/lib", export CPPFLAGS="/usr/local/opt/qt/include", export PATH="/usr/local/opt/qt/bin:$PATH"。 但即使在评论它时,我仍然有同样的错误
你的LDFLAGS
或CPPFLAGS
作业都没有意义,而且 第一个是与您有关的链接器故障的原因。
环境变量的值LDFLAGS
(如果设置(由构建系统解释 作为链接选项。同样,环境变量的值CPPFLAGS
,如果设置,则被解释为预处理器选项。
/usr/local/opt/qt/lib
不是链接选项,/usr/local/opt/qt/include
不是预处理器选项。这些只是目录名称。任何论点 您传递给链接器(或预处理器或编译器(不是一个选项是 由工具作为输入文件进行干预。因此,您引导链接者相信 该/usr/local/opt/qt/lib
是链接的输入文件。
ld: can't map file, errno=22 file '/usr/local/opt/qt/lib' for architecture x86_64
是链接器在发现/usr/local/opt/qt/lib
不是时所说的 一个文件。
大概,您希望指示链接器/usr/local/opt/qt/lib
它应该在其中搜索链接所需的库的目录。 表达该意图的链接选项是:
-L/usr/local/opt/qt/lib
以下是用于链接的 GCC 选项
同样,您打算指示该预处理器/usr/local/opt/qt/include
是它应该在其中搜索头文件的目录。预处理器 表达的选项是:
-I/usr/local/opt/qt/include
以下是用于预处理的 GCC 选项
指定编译或链接选项是不正常且不可取的 在您的 Bash 登录配置文件中,就像您正在做的那样。在 构建系统的输入文件(makefile,cmakelists文件或类似文件(,或作为参数 生成系统的配置。但是,如果您坚持在 您的 bash 登录配置文件,那么您应该指定:
LDFLAGS=-L/usr/local/opt/qt/lib
CPPFLAGS=-I/usr/local/opt/qt/include
一旦您在bash_profile
中进行了这些环境设置,它们就会 仅在新的登录外壳中生效。
我遇到了类似的问题,但发现这是由于提升。
试试这个。
brew uninstall boost-python
brew uninstall boost
brew install boost-python --with-python3 --without-python
pip3 install dlib