为了安装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 install 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中的模块。
非常感谢您的帮助。
答案 0 :(得分:1)
您评论道:
的确,在我的.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
同样,您打算指示/usr/local/opt/qt/include
的预处理器
它是一个搜索头文件的目录。预处理器
表达的选项是:
-I/usr/local/opt/qt/include
以下是GCC options for preprocessing
指定编译或链接选项是不正常的,也是不可取的 在您的bash登录配置文件中,正如您所做的那样。在中指定此类选项 构建系统的输入文件(makefile,cmakelists文件或类似文件),或作为参数 构建系统的配置。但是,如果你坚持指定它们 您的bash登录配置文件,然后您应指定:
LDFLAGS=-L/usr/local/opt/qt/lib
CPPFLAGS=-I/usr/local/opt/qt/include
一旦您在bash_profile
中进行了这些环境设置,他们就会
仅在新的登录shell中生效。
答案 1 :(得分:0)
我有一个类似的问题,但发现它是由于提升。
试试这个。
brew uninstall boost-python
brew uninstall boost
brew install boost-python --with-python3 --without-python
pip3 install dlib